Boris Feld a écrit :
# HG changeset patch
# User Boris Feld <boris.f...@octobus.net>
# Date 1499088840 -7200
#      Mon Jul 03 15:34:00 2017 +0200
# Node ID 2fee3b06f7b09f35dcfa312b645cf94090c11fb9
# Parent  66a2b0407c8cffedfae4897bd7a2f0e2d6a22363
# EXP-Topic obsfatetemplate
template: compute user in obsfateusers

Extract, deduplicate users informations from obs markers in order to display
them.

Print all users for the moment, we might want to display users only in verbose
mode later.

diff -r 66a2b0407c8c -r 2fee3b06f7b0 mercurial/obsutil.py
--- a/mercurial/obsutil.py      Mon Jul 03 15:33:27 2017 +0200
+++ b/mercurial/obsutil.py      Mon Jul 03 15:34:00 2017 +0200
@@ -579,6 +579,18 @@
          verb = 'split'
      return {'verb': verb}
+def _successorsetusers(successorset, markers):
+    """ Returns a sorted list of markers users without duplicates
+    """
+    if not markers:
+        return {}
+
+    # Check that user is present in meta
+    markersmeta = [dict(m[3]) for m in markers]
+    users = set(meta.get('user') for meta in markersmeta if meta.get('user'))
+
+    return {'users': sorted(users)}

"users" set might be empty, do we want an empty dict instead in this case?

+
  def successorsandmarkers(repo, ctx):
      """compute the raw data needed for computing obsfate
      Returns a list of dict, one dict per successors set
diff -r 66a2b0407c8c -r 2fee3b06f7b0 mercurial/templater.py
--- a/mercurial/templater.py    Mon Jul 03 15:33:27 2017 +0200
+++ b/mercurial/templater.py    Mon Jul 03 15:34:00 2017 +0200
@@ -859,6 +859,24 @@
return obsutil._successorsetverb(successors, markers)['verb'] +@templatefunc('obsfateusers(successors, markers)')
+def obsfateusers(context, mapping, args):
+    """ Compute obsfate related information based on successors and markers
+    """
+    successors = evalfuncarg(context, mapping, args[0])
+    markers = evalfuncarg(context, mapping, args[1])
+    data = obsutil._successorsetusers(successors, markers)
+
+    _hybrid = templatekw._hybrid
+
+    def makemap(x):
+        return x
+
+    def joinfmt(d):
+        return d
+
+    return _hybrid(None, [data], makemap, joinfmt)
+
  @templatefunc('relpath(path)')
  def relpath(context, mapping, args):
      """Convert a repository-absolute path into a filesystem path relative to
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to