compat: only install the better filtered message for mercurial 4.2 and above
The helper function does not exist in earlier version.
--- a/hgext3rd/evolve/__init__.py Sat Apr 29 05:35:01 2017 +0200
+++ b/hgext3rd/evolve/__init__.py Mon May 01 06:06:41 2017 +0200
@@ -533,6 +533,39 @@
ui.warn("(%s)\n" % solvemsg)
+if util.safehasattr(context, '_filterederror'):
+ # if < hg-4.2 we do not update the message
+ @eh.wrapfunction(context, '_filterederror')
+ def evolve_filtererror(original, repo, changeid):
+ """build an exception to be raised about a filtered changeid
+
+ This is extracted in a function to help extensions (eg: evolve) to
+ experiment with various message variants."""
+ if repo.filtername.startswith('visible'):
+
+ unfilteredrepo = repo.unfiltered()
+ rev = unfilteredrepo[changeid]
+ reason, successors = _getobsoletereason(unfilteredrepo, rev.node())
+
+ # Be more precise in cqse the revision is superseed
+ if reason == 'superseed':
+ reason = _("successor: %s") % successors[0]
+ elif reason == 'superseed_split':
+ if len(successors) <= 2:
+ reason = _("successors: %s") % ", ".join(successors)
+ else:
+ firstsuccessors = ", ".join(successors[:2])
+ remainingnumber = len(successors) - 2
+ successorsmsg = _("%s and %d more") % (firstsuccessors, remainingnumber)
+ reason = _("successors: %s") % successorsmsg
+
+ msg = _("hidden revision '%s'") % changeid
+ hint = _('use --hidden to access hidden revisions; %s') % reason
+ return error.FilteredRepoLookupError(msg, hint=hint)
+ msg = _("filtered revision '%s' (not in '%s' subset)")
+ msg %= (changeid, repo.filtername)
+ return error.FilteredRepoLookupError(msg)
+
@eh.wrapcommand("update")
@eh.wrapcommand("pull")
def wrapmayobsoletewc(origfn, ui, repo, *args, **opts):
@@ -3203,35 +3236,3 @@
f.write(orig.topic())
return merge.graft(repo, orig, pctx, ['local', 'graft'], True)
-
-
-@eh.wrapfunction(context, '_filterederror')
-def evolve_filtererror(original, repo, changeid):
- """build an exception to be raised about a filtered changeid
-
- This is extracted in a function to help extensions (eg: evolve) to
- experiment with various message variants."""
- if repo.filtername.startswith('visible'):
-
- unfilteredrepo = repo.unfiltered()
- rev = unfilteredrepo[changeid]
- reason, successors = _getobsoletereason(unfilteredrepo, rev.node())
-
- # Be more precise in cqse the revision is superseed
- if reason == 'superseed':
- reason = _("successor: %s") % successors[0]
- elif reason == 'superseed_split':
- if len(successors) <= 2:
- reason = _("successors: %s") % ", ".join(successors)
- else:
- firstsuccessors = ", ".join(successors[:2])
- remainingnumber = len(successors) - 2
- successorsmsg = _("%s and %d more") % (firstsuccessors, remainingnumber)
- reason = _("successors: %s") % successorsmsg
-
- msg = _("hidden revision '%s'") % changeid
- hint = _('use --hidden to access hidden revisions; %s') % reason
- return error.FilteredRepoLookupError(msg, hint=hint)
- msg = _("filtered revision '%s' (not in '%s' subset)")
- msg %= (changeid, repo.filtername)
- return error.FilteredRepoLookupError(msg)