diff --git a/mercurial/obsutil.py b/mercurial/obsutil.py --- a/mercurial/obsutil.py +++ b/mercurial/obsutil.py @@ -751,8 +751,9 @@ def successorsandmarkers(repo, ctx): return values -def successorsetverb(successorset): - """ Return the verb summarizing the successorset +def obsfateverb(successorset, markers): + """ Return the verb summarizing the successorset and potentially using + information from the markers """ if not successorset: verb = 'pruned' @@ -795,7 +796,7 @@ def obsfateprinter(successors, markers, line = [] # Verb - line.append(successorsetverb(successors)) + line.append(obsfateverb(successors, markers)) # Operations operations = markersoperations(markers) diff --git a/mercurial/templater.py b/mercurial/templater.py --- a/mercurial/templater.py +++ b/mercurial/templater.py @@ -1005,17 +1005,18 @@ def obsfateusers(context, mapping, args) "obsmakers") raise error.ParseError(msg) -@templatefunc('obsfateverb(successors)') +@templatefunc('obsfateverb(successors, markers)') def obsfateverb(context, mapping, args): """Compute obsfate related information based on successors (EXPERIMENTAL)""" - if len(args) != 1: + if len(args) != 2: # i18n: "obsfateverb" is a keyword - raise error.ParseError(_("obsfateverb expects one arguments")) + raise error.ParseError(_("obsfateverb expects two arguments")) successors = evalfuncarg(context, mapping, args[0]) + markers = evalfuncarg(context, mapping, args[1]) try: - return obsutil.successorsetverb(successors) + return obsutil.obsfateverb(successors, markers) except TypeError: # i18n: "obsfateverb" is a keyword errmsg = _("obsfateverb first argument should be countable") diff --git a/tests/test-obsmarker-template.t b/tests/test-obsmarker-template.t --- a/tests/test-obsmarker-template.t +++ b/tests/test-obsmarker-template.t @@ -13,7 +13,7 @@ Global setup > evolution=true > [templates] > obsfatesuccessors = "{if(successors, " as ")}{join(successors, ", ")}" - > obsfateverb = "{obsfateverb(successors)}" + > obsfateverb = "{obsfateverb(successors, markers)}" > obsfateoperations = "{if(obsfateoperations(markers), " using {join(obsfateoperations(markers), ", ")}")}" > obsfateusers = "{if(obsfateusers(markers), " by {join(obsfateusers(markers), ", ")}")}" > obsfatedate = "{if(obsfatedate(markers), "{ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), " (at {min(obsfatedate(markers))|isodate})", " (between {min(obsfatedate(markers))|isodate} and {max(obsfatedate(markers))|isodate})")}")}"