merge with stable stable
authorBoris Feld <boris.feld@octobus.net>
Fri, 16 Jun 2017 11:32:21 +0200
branchstable
changeset 2594 a3fbe5293bf6
parent 2557 e3acb8823900 (current diff)
parent 2593 ed977325cd2a (diff)
child 2595 54ac473663ff
child 2613 3d432af2f6cd
merge with stable
hgext3rd/evolve/obscache.py
hgext3rd/evolve/templatekw.py
tests/test-drop.t
tests/test-evolve-templates.t
tests/test-obsolete.t
tests/test-wireproto.t
--- a/README	Wed May 31 22:15:34 2017 +0200
+++ b/README	Fri Jun 16 11:32:21 2017 +0200
@@ -121,6 +121,14 @@
 Changelog
 =========
 
+6.4.0 - inprogress
+------------------
+
+ - effect flag: the experiment is now active by default,
+   (see 'hg help -e evolve' to opt out)
+ - obscache: reduce impact on large repository
+ - template: signifiant improvement to the '{obsfate}' template (now 4.2+ only)
+
 6.3.2 - in progress
 -------------------
 
--- a/hgext3rd/evolve/__init__.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/evolve/__init__.py	Fri Jun 16 11:32:21 2017 +0200
@@ -102,16 +102,46 @@
 We are experimenting with a way to register what changed between a precursor
 and its successors (content, description, parent, etc...). For example, having
 this information is helpful to show what changed between an obsolete changeset
-and its tipmost successors.
+and its tipmost successors. This experiment is active by default
 
 The following config control the experiment::
 
   [experimental]
-  # activate the registration of effect flags in obs markers
-  evolution.effect-flags = yes
+  # deactivate the registration of effect flags in obs markers
+  evolution.effect-flags = false
 
 The effect flags are shown in the obglog command output without particular
-configuration of you want to inspect them.
+configuration if you want to inspect them.
+
+Templates
+=========
+
+Evolve ship several templates that you can use to have a better visibility
+about your obs history:
+
+  - precursors, for each obsolete changeset show the closest visible
+    precursors.
+  - successors, for each obsolete changeset show the closets visible
+    successors. It is useful when your working directory is obsolete to see
+    what are its successors. This informations can also be retrieved with the
+    obslog command and the --all option.
+  - obsfate, for each obsolete changeset display a line summarizing what
+    changed between the changeset and its successors. Dependending on the
+    verbosity level (-q and -v) it display the changeset successors, the users
+    that created the obsmarkers and the date range of theses changes.
+
+    The template itself is not complex, the data are basically a list of
+    successortset. Each successorset is a dict with these fields:
+
+      - "verb", how did the revision changed, pruned or rewritten for the moment
+      - "users" a sorted list of users that have create obs marker between current
+        changeset and one of its successor
+      - "min_date" the tiniest date of the first obs marker between current
+        changeset and one of its successor
+      - "max_date" the biggest date between current changeset and one of its
+        successor
+      - "successors" a sorted list of locally know successors node ids
+      - "markers" the raw list of changesets.
 """
 
 evolutionhelptext = """
--- a/hgext3rd/evolve/metadata.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/evolve/metadata.py	Fri Jun 16 11:32:21 2017 +0200
@@ -5,7 +5,7 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
-__version__ = '6.3.1'
+__version__ = '6.4.0.dev'
 testedwith = '3.8.4 3.9.2 4.0.2 4.1.2 4.2'
 minimumhgversion = '3.8'
 buglink = 'https://bz.mercurial-scm.org/'
--- a/hgext3rd/evolve/obscache.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/evolve/obscache.py	Fri Jun 16 11:32:21 2017 +0200
@@ -364,18 +364,31 @@
         super(obscache, self).__init__()
         self._ondiskkey = None
         self._vfs = repo.vfs
-        self._data = bytearray()
+        self._setdata(bytearray())
+
+    @util.propertycache
+    def get(self):
+        """final signature: obscache.get(rev)
+
+        return True if "rev" is used as "precursors for any obsmarkers
 
-    def get(self, rev):
-        """return True if "rev" is used as "precursors for any obsmarkers
+        IMPORTANT: make sure the cache has been updated to match the repository
+        content before using it
 
-        Make sure the cache has been updated to match the repository content before using it"""
-        return self._data[rev]
+        We use a property cache to skip the attribute resolution overhead in
+        hot loops."""
+        return self._data.__getitem__
+
+    def _setdata(self, data):
+        """set a new bytearray data, invalidating the 'get' shortcut if needed"""
+        self._data = data
+        if 'get' in vars(self):
+            del self.get
 
     def clear(self, reset=False):
         """invalidate the cache content"""
         super(obscache, self).clear(reset=reset)
-        self._data = bytearray()
+        self._setdata(bytearray())
 
     def _updatefrom(self, repo, revs, obsmarkers):
         if revs:
@@ -404,16 +417,18 @@
         For now we stick to the simpler approach of paying the
         performance cost on new changesets.
         """
-        node = repo.changelog.node
-        succs = repo.obsstore.successors
-        for r in revs:
-            if node(r) in succs:
-                val = 1
-            else:
-                val = 0
-            self._data.append(val)
-        cl = repo.changelog
-        assert len(self._data) == len(cl), (len(self._data), len(cl))
+        new_entries = bytearray(len(revs))
+        if not self._data:
+            self._setdata(new_entries)
+        else:
+            self._data.extend(new_entries)
+        data = self._data
+        if repo.obsstore:
+            node = repo.changelog.node
+            succs = repo.obsstore.successors
+            for r in revs:
+                if node(r) in succs:
+                    data[r] = 1
 
     def _updatemarkers(self, repo, obsmarkers):
         """update the cache with new markers"""
@@ -443,11 +458,11 @@
         data = repo.vfs.tryread(self._filepath)
         if not data:
             self._cachekey = self.emptykey
-            self._data = bytearray()
+            self._setdata(bytearray())
         else:
             headersize = struct.calcsize(self._headerformat)
             self._cachekey = struct.unpack(self._headerformat, data[:headersize])
-            self._data = bytearray(data[headersize:])
+            self._setdata(bytearray(data[headersize:]))
         self._ondiskkey = self._cachekey
 
 def _computeobsoleteset(orig, repo):
@@ -507,23 +522,31 @@
                 self.obsstore.obscache.clear()
             super(obscacherepo, self).destroyed()
 
-        def transaction(self, *args, **kwargs):
-            tr = super(obscacherepo, self).transaction(*args, **kwargs)
-            reporef = weakref.ref(self)
-
-            def _warmcache(tr):
-                repo = reporef()
-                if repo is None:
-                    return
-                repo = repo.unfiltered()
-                # As pointed in 'obscache.update', we could have the changelog
-                # and the obsstore in charge of updating the cache when new
-                # items goes it. The tranaction logic would then only be
-                # involved for the 'pending' and final writing on disk.
+        if util.safehasattr(repo, 'updatecaches'):
+            @localrepo.unfilteredmethod
+            def updatecaches(self, tr=None):
+                super(obscacherepo, self).updatecaches(tr)
                 self.obsstore.obscache.update(repo)
                 self.obsstore.obscache.save(repo)
 
-            tr.addpostclose('warmcache-obscache', _warmcache)
-            return tr
+        else:
+            def transaction(self, *args, **kwargs):
+                tr = super(obscacherepo, self).transaction(*args, **kwargs)
+                reporef = weakref.ref(self)
+
+                def _warmcache(tr):
+                    repo = reporef()
+                    if repo is None:
+                        return
+                    repo = repo.unfiltered()
+                    # As pointed in 'obscache.update', we could have the changelog
+                    # and the obsstore in charge of updating the cache when new
+                    # items goes it. The tranaction logic would then only be
+                    # involved for the 'pending' and final writing on disk.
+                    self.obsstore.obscache.update(repo)
+                    self.obsstore.obscache.save(repo)
+
+                tr.addpostclose('warmcache-obscache', _warmcache)
+                return tr
 
     repo.__class__ = obscacherepo
--- a/hgext3rd/evolve/obshistory.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/evolve/obshistory.py	Fri Jun 16 11:32:21 2017 +0200
@@ -484,6 +484,9 @@
 def _getdifflines(iterdiff):
     """return a cleaned up lines"""
     try:
+        # XXX-COMPAT Mercurial 4.1 compat
+        if isinstance(iterdiff, list) and len(iterdiff) == 0:
+            return None
         lines = iterdiff.next()
     except StopIteration:
         return None
@@ -528,7 +531,7 @@
     meaningful data. In the future, we can introduce way for commands to
     provide precomputed effect to avoid the overhead.
     """
-    if not repo.ui.configbool('experimental', 'evolution.effect-flags', False):
+    if not repo.ui.configbool('experimental', 'evolution.effect-flags', True):
         return orig(repo, relations, flag, date, metadata, **kwargs)
     if metadata is None:
         metadata = {}
@@ -597,16 +600,89 @@
 
     return (fate, successors)
 
-def _humanizedobsfate(fate, successors):
-    """ Returns a humanized string for a changeset fate and its successors
+def _successorsetdates(successorset, markers):
+    """returns the max date and the min date of the markers list
     """
 
-    if fate == 'pruned':
-        return 'pruned'
-    elif fate == 'diverged':
-        msgs = []
-        for successorsset in successors:
-            msgs.append('superseed as %s' % ','.join(successorsset))
-        return ' + '.join(msgs)
-    elif fate in ('superseed', 'superseed_split'):
-        return 'superseed as %s' % ','.join(successors)
+    if not markers:
+        return {}
+
+    dates = [m[4] for m in markers]
+
+    return {
+        'min_date': min(dates),
+        'max_date': max(dates)
+    }
+
+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)}
+
+def _successorsetverb(successorset, markers):
+    """ Return the verb summarizing the successorset
+    """
+    # XXX we need to handle prune markers at some point.
+    if not markers:
+        return {'verb': 'pruned'}
+
+    return {'verb': 'rewritten'}
+
+FORMATSSETSFUNCTIONS = [
+    _successorsetdates,
+    _successorsetusers,
+    _successorsetverb
+]
+
+def _successorsetallmarkers(successorset, pathscache):
+    """compute all successors of a successorset.
+
+    pathscache must contains all successors starting from selected nodes
+    or revision. This way, iterating on each successor, we can take all
+    precursors and have the subgraph of all obsmarkers between roots to
+    successors.
+    """
+
+    markers = set()
+    seen = set()
+
+    for successor in successorset:
+        stack = [successor]
+
+        while stack:
+            element = stack.pop()
+            seen.add(element)
+            for prec, mark in pathscache.get(element, []):
+                if prec not in seen:
+                    # Process element precursors
+                    stack.append(prec)
+
+                if mark not in markers:
+                    markers.add(mark)
+
+    return markers
+
+def _preparesuccessorset(successorset, pathscache):
+    """ For a successor set, get all related markers, compute the set of user,
+    the min date and the max date
+    """
+    markers = _successorsetallmarkers(successorset, pathscache)
+
+    # Format basic data
+    data = {
+        "successors": sorted(successorset),
+        "markers": sorted(markers)
+    }
+
+    # Call an extensible list of functions to override or add new data
+    for function in FORMATSSETSFUNCTIONS:
+        data.update(function(successorset, markers))
+
+    return data
--- a/hgext3rd/evolve/templatekw.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/evolve/templatekw.py	Fri Jun 16 11:32:21 2017 +0200
@@ -91,7 +91,7 @@
     if not ctx.obsolete():
         return ''
 
-    ssets = closestsuccessors(repo, ctx.node())
+    ssets, _ = closestsuccessors(repo, ctx.node())
 
     data = []
     gen = []
@@ -106,13 +106,66 @@
     return templatekw._hybrid(iter(gen), data, lambda x: {'successorset': x},
                               lambda d: d["successorset"])
 
-@eh.templatekw("obsfate_quiet")
-def showobsfate_quiet(repo, ctx, templ, **args):
+def obsfatedefaulttempl():
+    """ Returns a dict with the default templates for obs fate
+    """
+    # Prepare templates
+    verbtempl = '{verb}'
+    usertempl = '{if(users, " by {join(users, ", ")}")}'
+    succtempl = '{if(successors, " as ")}{successors}' # Bypass if limitation
+    datetempleq = ' (at {min_date|isodate})'
+    datetemplnoteq = ' (between {min_date|isodate} and {max_date|isodate})'
+    datetempl = '{if(max_date, "{ifeq(min_date, max_date, "%s", "%s")}")}' % (datetempleq, datetemplnoteq)
+    newline = '\n'
+
+    # Assemble them
+    return {
+        'obsfate_quiet': verbtempl + succtempl + newline,
+        'obsfate': verbtempl + usertempl + succtempl + newline,
+        'obsfate_verbose': verbtempl + usertempl + succtempl + datetempl + newline
+    }
+
+@eh.templatekw("obsfate")
+def showobsfate(repo, ctx, **args):
     if not ctx.obsolete():
         return ''
 
-    successorssets = closestsuccessors(repo, ctx.node())
-    return obshistory._humanizedobsfate(*obshistory._getobsfateandsuccs(repo, ctx, successorssets))
+    successorssets, pathcache = closestsuccessors(repo, ctx.node())
+
+    # closestsuccessors returns an empty list for pruned revisions, remap it
+    # into a list containing en empty list for future processing
+    if successorssets == []:
+        successorssets = [[]]
+
+    values = []
+    for successorset in successorssets:
+        raw = obshistory._preparesuccessorset(successorset, pathcache)
+
+        # As we can't do something like
+        # "{join(map(nodeshort, successors), ', '}" in template, manually
+        # create a correct textual representation
+        gen = ', '.join(map(node.short, raw['successors']))
+
+        makemap = lambda x: {'successor': x}
+        joinfmt = lambda d: "%s" % d['successor']
+        raw['successors'] = templatekw._hybrid(gen, raw['successors'], makemap,
+                                               joinfmt)
+
+        values.append(raw)
+
+    # Insert default obsfate templates
+    args['templ'].cache.update(obsfatedefaulttempl())
+
+    if repo.ui.quiet:
+        name = "obsfate_quiet"
+    elif repo.ui.verbose:
+        name = "obsfate_verbose"
+    elif repo.ui.debugflag:
+        name = "obsfate_debug"
+    else:
+        name = "obsfate"
+
+    return templatekw.showlist(name, values, args, separator=' + ')
 
 # copy from mercurial.obsolete with a small change to stop at first known changeset.
 
@@ -127,6 +180,9 @@
     # set version of above list for fast loop detection
     # element added to "toproceed" must be added here
     stackedset = set(toproceed)
+
+    pathscache = {}
+
     if cache is None:
         cache = {}
     while toproceed:
@@ -156,6 +212,7 @@
                             # of one of those successors we add it to the
                             # `toproceed` stack and stop all work for this
                             # iteration.
+                            pathscache.setdefault(suc, []).append((current, mark))
                             toproceed.append(suc)
                             stackedset.add(suc)
                             break
@@ -195,4 +252,5 @@
                         seen.append(setversion)
                 final.reverse() # put small successors set first
                 cache[current] = final
-    return cache[initialnode]
+
+    return cache[initialnode], pathscache
--- a/hgext3rd/topic/discovery.py	Wed May 31 22:15:34 2017 +0200
+++ b/hgext3rd/topic/discovery.py	Fri Jun 16 11:32:21 2017 +0200
@@ -15,11 +15,24 @@
 
 from . import topicmap
 
-def _headssummary(orig, repo, remote, outgoing):
+def _headssummary(orig, *args):
+    # In mercurial < 4.2, we receive repo, remote and outgoing as arguments
+    if len(args) == 3:
+        repo, remote, outgoing = args
+
+    # In mercurial > 4.3, we receive the pushop as arguments
+    elif len(args) == 1:
+        pushop = args[0]
+        repo = pushop.repo.unfiltered()
+        remote = pushop.remote
+    else:
+        msg = 'topic-ext _headssummary() takes 1 or 3 arguments (%d given)'
+        raise TypeError(msg % len(args))
+
     publishing = ('phases' not in remote.listkeys('namespaces')
                   or bool(remote.listkeys('phases').get('publishing', False)))
     if publishing or not remote.capable('topics'):
-        return orig(repo, remote, outgoing)
+        return orig(*args)
     oldrepo = repo.__class__
     oldbranchcache = branchmap.branchcache
     oldfilename = branchmap._filename
@@ -42,7 +55,7 @@
         repo.__class__ = repocls
         branchmap.branchcache = topicmap.topiccache
         branchmap._filename = topicmap._filename
-        summary = orig(repo, remote, outgoing)
+        summary = orig(*args)
         for key, value in summary.iteritems():
             if ':' in key: # This is a topic
                 if value[0] is None and value[1]:
--- a/tests/test-amend.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-amend.t	Fri Jun 16 11:32:21 2017 +0200
@@ -21,8 +21,8 @@
   (branches are permanent and global, did you want a bookmark?)
   $ hg amend -d '0 0'
   $ hg debugobsolete
-  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'user': 'test'} (glob)
-  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'user': 'test'} (glob)
+  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg branch
   foo
   $ hg branches
@@ -66,8 +66,8 @@
   $ hg pdiff
   $ hg ci -m reseta
   $ hg debugobsolete
-  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'user': 'test'} (glob)
-  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'user': 'test'} (glob)
+  07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {07f4944404050f47db2e5c5071e0e84e7a27bba9} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg phase 2
   2: draft
   $ glog
--- a/tests/test-drop.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-drop.t	Fri Jun 16 11:32:21 2017 +0200
@@ -3,8 +3,8 @@
   > [extensions]
   > hgext.graphlog=
   > EOF
+  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
   $ echo "drophack=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/hack/drophack.py" >> $HGRCPATH
-  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
   $ mkcommit() {
   >    echo "$1" > "$1"
   >    hg add "$1"
@@ -225,8 +225,8 @@
      summary:     add base
   
   ============ obsmark ============
-  34b6c051bf1f78db6aef400776de5cb964470207 a2c06c884bfe53d3840026248bd8a7eafa152df8 0 (*) {'user': 'test'} (glob)
-  87ea30a976fdf235bf096f04899cb02a903873e2 0 {34b6c051bf1f78db6aef400776de5cb964470207} (*) {'user': 'test'} (glob)
+  34b6c051bf1f78db6aef400776de5cb964470207 a2c06c884bfe53d3840026248bd8a7eafa152df8 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  87ea30a976fdf235bf096f04899cb02a903873e2 0 {34b6c051bf1f78db6aef400776de5cb964470207} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg drop .
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   working directory now at 19509a42b0d0
@@ -263,4 +263,4 @@
      summary:     add base
   
   ============ obsmark ============
-  87ea30a976fdf235bf096f04899cb02a903873e2 0 {34b6c051bf1f78db6aef400776de5cb964470207} (*) {'user': 'test'} (glob)
+  87ea30a976fdf235bf096f04899cb02a903873e2 0 {34b6c051bf1f78db6aef400776de5cb964470207} (*) {'ef1': '0', 'user': 'test'} (glob)
--- a/tests/test-evolve-cycles.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-evolve-cycles.t	Fri Jun 16 11:32:21 2017 +0200
@@ -86,48 +86,48 @@
 
   $ hg obslog "desc(A)" --hidden
   @  2a34000d3544 (1) A
-  |    rewritten by test (*) as c473644ee0e9 (glob)
+  |    rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   |
   x  a8df460dbbfe (3) C
-  |    rewritten by test (*) as 2a34000d3544 (glob)
+  |    rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob)
   |
   x  c473644ee0e9 (2) B
-  |    rewritten by test (*) as a8df460dbbfe (glob)
+  |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   |
 
   $ hg obslog "desc(B)" --hidden
   @  2a34000d3544 (1) A
-  |    rewritten by test (*) as c473644ee0e9 (glob)
+  |    rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   |
   x  a8df460dbbfe (3) C
-  |    rewritten by test (*) as 2a34000d3544 (glob)
+  |    rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob)
   |
   x  c473644ee0e9 (2) B
-  |    rewritten by test (*) as a8df460dbbfe (glob)
+  |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   |
 
   $ hg obslog "desc(C)" --hidden
   @  2a34000d3544 (1) A
-  |    rewritten by test (*) as c473644ee0e9 (glob)
+  |    rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   |
   x  a8df460dbbfe (3) C
-  |    rewritten by test (*) as 2a34000d3544 (glob)
+  |    rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob)
   |
   x  c473644ee0e9 (2) B
-  |    rewritten by test (*) as a8df460dbbfe (glob)
+  |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   |
 
 Check that all option don't crash on a cycle either
 
   $ hg obslog "desc(C)" --hidden --all
   @  2a34000d3544 (1) A
-  |    rewritten by test (*) as c473644ee0e9 (glob)
+  |    rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   |
   x  a8df460dbbfe (3) C
-  |    rewritten by test (*) as 2a34000d3544 (glob)
+  |    rewritten(description, parent, content) by test (*) as 2a34000d3544 (glob)
   |
   x  c473644ee0e9 (2) B
-  |    rewritten by test (*) as a8df460dbbfe (glob)
+  |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   |
 
 Test with multiple cyles
@@ -243,42 +243,42 @@
 
   $ hg obslog "desc(D)" --hidden
   x  0da815c333f6 (5) E
-  |    rewritten by test (*) as d9f908fde1a1 (glob)
+  |    rewritten(description, parent, content) by test (*) as d9f908fde1a1 (glob)
   |
   @    868d2e0eb19c (4) D
-  |\     rewritten by test (*) as 0da815c333f6 (glob)
+  |\     rewritten(description, parent, content) by test (*) as 0da815c333f6 (glob)
   | |
   | x  d9f908fde1a1 (6) F
-  | |    rewritten by test (*) as 868d2e0eb19c (glob)
+  | |    rewritten(description, parent, content) by test (*) as 868d2e0eb19c (glob)
   | |
   +---x  2a34000d3544 (1) A
-  | |      rewritten by test (*) as c473644ee0e9 (glob)
+  | |      rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   | |
   x |  a8df460dbbfe (3) C
-  | |    rewritten by test (*) as 2a34000d3544, 868d2e0eb19c (glob)
+  | |    rewritten(description, parent, content) by test (*) as 2a34000d3544, 868d2e0eb19c (glob)
   | |
   x |  c473644ee0e9 (2) B
-  | |    rewritten by test (*) as a8df460dbbfe (glob)
+  | |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   | |
 Check that all option don't crash either on a cycle
   $ hg obslog --all --hidden "desc(F)"
   x  0da815c333f6 (5) E
-  |    rewritten by test (*) as d9f908fde1a1 (glob)
+  |    rewritten(description, parent, content) by test (*) as d9f908fde1a1 (glob)
   |
   @    868d2e0eb19c (4) D
-  |\     rewritten by test (*) as 0da815c333f6 (glob)
+  |\     rewritten(description, parent, content) by test (*) as 0da815c333f6 (glob)
   | |
   | x  d9f908fde1a1 (6) F
-  | |    rewritten by test (*) as 868d2e0eb19c (glob)
+  | |    rewritten(description, parent, content) by test (*) as 868d2e0eb19c (glob)
   | |
   +---x  2a34000d3544 (1) A
-  | |      rewritten by test (*) as c473644ee0e9 (glob)
+  | |      rewritten(description, parent, content) by test (*) as c473644ee0e9 (glob)
   | |
   x |  a8df460dbbfe (3) C
-  | |    rewritten by test (*) as 2a34000d3544, 868d2e0eb19c (glob)
+  | |    rewritten(description, parent, content) by test (*) as 2a34000d3544, 868d2e0eb19c (glob)
   | |
   x |  c473644ee0e9 (2) B
-  | |    rewritten by test (*) as a8df460dbbfe (glob)
+  | |    rewritten(description, parent, content) by test (*) as a8df460dbbfe (glob)
   | |
 Check the json output is valid in this case
 
@@ -287,6 +287,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
@@ -305,6 +310,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
@@ -323,6 +333,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
@@ -341,6 +356,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
@@ -360,6 +380,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
@@ -378,6 +403,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0
--- a/tests/test-evolve-obshistory-complex.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-evolve-obshistory-complex.t	Fri Jun 16 11:32:21 2017 +0200
@@ -362,25 +362,25 @@
   o    7b3290f6e0a0 (12) fold1
   |\
   x |    d15d0ffc75f6 (8) fold1
-  |\ \     rewritten by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
+  |\ \     rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
   | | |
   | | x  e036916b63ea (11) fold0
-  | | |    rewritten by test (*) as 7b3290f6e0a0 (glob)
+  | | |    rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob)
   | | |
   x | |  868d2e0eb19c (4) D
-   / /     rewritten by test (*) as d15d0ffc75f6 (glob)
+   / /     rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob)
   | |
   x |  a8df460dbbfe (3) C
-   /     rewritten by test (*) as d15d0ffc75f6 (glob)
+   /     rewritten(description, content) by test (*) as d15d0ffc75f6 (glob)
   |
   x    b868bc49b0a4 (7) fold0
-  |\     rewritten by test (*) as 19e14c8397fc, e036916b63ea (glob)
+  |\     rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob)
   | |
   x |  2a34000d3544 (1) A
-   /     rewritten by test (*) as b868bc49b0a4 (glob)
+   /     rewritten(description, content) by test (*) as b868bc49b0a4 (glob)
   |
   x  c473644ee0e9 (2) B
-       rewritten by test (*) as b868bc49b0a4 (glob)
+       rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob)
   
 While with all option, we should see 15 changesets
 
@@ -394,35 +394,35 @@
   | | | | o  ec31316faa9d (14) fold2
   | | | |/|
   | | | x |    100cc25b765f (9) fold2
-  | | | |\ \     rewritten by test (*) as d4a000f63ee9, ec31316faa9d (glob)
+  | | | |\ \     rewritten(parent, content) by test (*) as d4a000f63ee9, ec31316faa9d (glob)
   | | | | | |
   | +-------x  d0f33db50670 (13) fold1
-  | | | | |      rewritten by test (*) as ec31316faa9d (glob)
+  | | | | |      rewritten(description, parent, content) by test (*) as ec31316faa9d (glob)
   | | | | |
   +---x | |  e036916b63ea (11) fold0
-  | |  / /     rewritten by test (*) as 7b3290f6e0a0 (glob)
+  | |  / /     rewritten(description, parent, content) by test (*) as 7b3290f6e0a0 (glob)
   | | | |
   | | x |  0da815c333f6 (5) E
-  | |  /     rewritten by test (*) as 100cc25b765f (glob)
+  | |  /     rewritten(description, content) by test (*) as 100cc25b765f (glob)
   | | |
   x | |    b868bc49b0a4 (7) fold0
-  |\ \ \     rewritten by test (*) as 19e14c8397fc, e036916b63ea (glob)
+  |\ \ \     rewritten(parent, content) by test (*) as 19e14c8397fc, e036916b63ea (glob)
   | | | |
   | | x |    d15d0ffc75f6 (8) fold1
-  | | |\ \     rewritten by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
+  | | |\ \     rewritten(parent, content) by test (*) as 7b3290f6e0a0, d0f33db50670 (glob)
   | | | | |
   | | | | x  d9f908fde1a1 (6) F
-  | | | |      rewritten by test (*) as 100cc25b765f (glob)
+  | | | |      rewritten(description, parent, content) by test (*) as 100cc25b765f (glob)
   | | | |
   x | | |  2a34000d3544 (1) A
-   / / /     rewritten by test (*) as b868bc49b0a4 (glob)
+   / / /     rewritten(description, content) by test (*) as b868bc49b0a4 (glob)
   | | |
   | x |  868d2e0eb19c (4) D
-  |  /     rewritten by test (*) as d15d0ffc75f6 (glob)
+  |  /     rewritten(description, parent, content) by test (*) as d15d0ffc75f6 (glob)
   | |
   | x  a8df460dbbfe (3) C
-  |      rewritten by test (*) as d15d0ffc75f6 (glob)
+  |      rewritten(description, content) by test (*) as d15d0ffc75f6 (glob)
   |
   x  c473644ee0e9 (2) B
-       rewritten by test (*) as b868bc49b0a4 (glob)
+       rewritten(description, parent, content) by test (*) as b868bc49b0a4 (glob)
   
--- a/tests/test-evolve-obshistory.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-evolve-obshistory.t	Fri Jun 16 11:32:21 2017 +0200
@@ -12,6 +12,8 @@
   > publish=False
   > [extensions]
   > evolve =
+  > [experimental]
+  > evolution.effect-flags = yes
   > EOF
 
 Test output on amended commit
@@ -57,7 +59,7 @@
   @  4ae3a4151de9 (3) A1
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 4ae3a4151de9 (glob)
+       rewritten(description, content) by test (*) as 4ae3a4151de9 (glob)
   
   $ hg obslog 4ae3a4151de9 --no-graph -Tjson | python -m json.tool
   [
@@ -70,6 +72,10 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -88,13 +94,17 @@
   ]
   $ hg obslog --hidden 471f378eab4c
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 4ae3a4151de9 (glob)
+       rewritten(description, content) by test (*) as 4ae3a4151de9 (glob)
   
   $ hg obslog --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
   [
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      *, (glob)
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -308,13 +318,17 @@
 Check that debugobshistory on splitted commit show both targets
   $ hg obslog 471597cad322 --hidden
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
   $ hg obslog 471597cad322 --hidden --no-graph -Tjson | python -m json.tool
   [
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -338,7 +352,7 @@
   o  337fec4d2edc (2) A0
   |
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
 With the all option, it should show the three changesets
   $ hg obslog --all 337fec4d2edc
@@ -347,7 +361,7 @@
   | @  f257fde29c7a (3) A0
   |/
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
 Check that debugobshistory on the second successor after split show
 the revision plus the splitted one
@@ -355,7 +369,7 @@
   @  f257fde29c7a (3) A0
   |
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
 With the all option, it should show the three changesets
   $ hg obslog f257fde29c7a --all
@@ -364,7 +378,7 @@
   | @  f257fde29c7a (3) A0
   |/
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
 Obslog with all option all should also works on the splitted commit
   $ hg obslog -a 471597cad322 --hidden
@@ -373,7 +387,7 @@
   | @  f257fde29c7a (3) A0
   |/
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
 Check that debugobshistory on both successors after split show
 a coherent graph
@@ -383,7 +397,7 @@
   | @  f257fde29c7a (3) A0
   |/
   x  471597cad322 (1) A0
-       rewritten by test (*) as 337fec4d2edc, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 337fec4d2edc, f257fde29c7a (glob)
   
   $ hg update 471597cad322
   abort: hidden revision '471597cad322'!
@@ -549,7 +563,7 @@
 
   $ hg obslog de7290d8b885 --hidden
   x  de7290d8b885 (1) A0
-       rewritten by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
   
   $ hg obslog de7290d8b885 --hidden --all
   o  1ae8bc733a14 (4) A0
@@ -561,13 +575,17 @@
   | o  f257fde29c7a (3) A0
   |/
   x  de7290d8b885 (1) A0
-       rewritten by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
   
   $ hg obslog de7290d8b885 --hidden --no-graph -Tjson | python -m json.tool
   [
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -591,7 +609,7 @@
   @  c7f044602e9b (5) A0
   |
   x  de7290d8b885 (1) A0
-       rewritten by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
   
   $ hg obslog c7f044602e9b --no-graph -Tjson | python -m json.tool
   [
@@ -604,6 +622,10 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -634,7 +656,7 @@
   | o  f257fde29c7a (3) A0
   |/
   x  de7290d8b885 (1) A0
-       rewritten by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
   
   $ hg obslog 5 --all
   o  1ae8bc733a14 (4) A0
@@ -646,7 +668,7 @@
   | o  f257fde29c7a (3) A0
   |/
   x  de7290d8b885 (1) A0
-       rewritten by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
+       rewritten(parent, content) by test (*) as 1ae8bc733a14, 337fec4d2edc, c7f044602e9b, f257fde29c7a (glob)
   
   $ hg update de7290d8b885
   abort: hidden revision 'de7290d8b885'!
@@ -718,33 +740,33 @@
 the revision with the target
   $ hg obslog --hidden 471f378eab4c
   x  471f378eab4c (1) A0
-       rewritten by test (*) as eb5a0daa2192 (glob)
+       rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   
 Check that with all option, all changesets are shown
   $ hg obslog --hidden --all 471f378eab4c
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten by test (*) as eb5a0daa2192 (glob)
+   /     rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as eb5a0daa2192 (glob)
+       rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   
 Check that debugobshistory on the second folded revision show only
 the revision with the target
   $ hg obslog --hidden 0dec01379d3b
   x  0dec01379d3b (2) B0
-       rewritten by test (*) as eb5a0daa2192 (glob)
+       rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   
 Check that with all option, all changesets are shown
   $ hg obslog --hidden --all 0dec01379d3b
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten by test (*) as eb5a0daa2192 (glob)
+   /     rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as eb5a0daa2192 (glob)
+       rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   
 Check that debugobshistory on the successor revision show a coherent
 graph
@@ -752,10 +774,10 @@
   @    eb5a0daa2192 (3) C0
   |\
   x |  0dec01379d3b (2) B0
-   /     rewritten by test (*) as eb5a0daa2192 (glob)
+   /     rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as eb5a0daa2192 (glob)
+       rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   
   $ hg obslog eb5a0daa2192 --no-graph -Tjson | python -m json.tool
   [
@@ -768,6 +790,10 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -786,6 +812,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "parent",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -888,8 +919,8 @@
 Check that debugobshistory on the divergent revision show both destinations
   $ hg obslog --hidden 471f378eab4c
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
 
 Check that with all option, every changeset is shown
@@ -899,14 +930,17 @@
   | o  fdf9bde5129a (2) A1
   |/
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
   $ hg obslog --hidden 471f378eab4c --no-graph -Tjson | python -m json.tool
   [
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -918,6 +952,9 @@
                   "debugobshistory.verb": "rewritten"
               },
               {
+                  "debugobshistory.effect": [
+                      "description"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -940,8 +977,8 @@
   o  fdf9bde5129a (2) A1
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
 
 Check that all option show all of them
@@ -951,8 +988,8 @@
   | o  fdf9bde5129a (2) A1
   |/
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
 Check that debugobshistory on the second diverged revision show the revision
 and the diverent one
@@ -960,8 +997,8 @@
   @  65b757b745b9 (3) A2
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
 Check that all option show all of them
   $ hg obslog 65b757b745b9 -a
@@ -970,8 +1007,8 @@
   | o  fdf9bde5129a (2) A1
   |/
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
 Check that debugobshistory on the both diverged revision show a coherent
 graph
@@ -981,8 +1018,8 @@
   | o  fdf9bde5129a (2) A1
   |/
   x  471f378eab4c (1) A0
-       rewritten by test (*) as 65b757b745b9 (glob)
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as 65b757b745b9 (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
   $ hg obslog '65b757b745b9+fdf9bde5129a' --no-graph -Tjson | python -m json.tool
   [
@@ -995,6 +1032,9 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -1006,6 +1046,9 @@
                   "debugobshistory.verb": "rewritten"
               },
               {
+                  "debugobshistory.effect": [
+                      "description"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -1112,26 +1155,26 @@
   @    eb5a0daa2192 (4) C0
   |\
   x |  471f378eab4c (1) A0
-   /     rewritten by test (*) as eb5a0daa2192 (glob)
+   /     rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  b7ea6d14e664 (3) B1
-  |    rewritten by test (*) as eb5a0daa2192 (glob)
+  |    rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  0dec01379d3b (2) B0
-       rewritten by test (*) as b7ea6d14e664 (glob)
+       rewritten(description) by test (*) as b7ea6d14e664 (glob)
   
 Check that obslog on ROOT with all option show everything
   $ hg obslog 1 --hidden --all
   @    eb5a0daa2192 (4) C0
   |\
   x |  471f378eab4c (1) A0
-   /     rewritten by test (*) as eb5a0daa2192 (glob)
+   /     rewritten(description, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  b7ea6d14e664 (3) B1
-  |    rewritten by test (*) as eb5a0daa2192 (glob)
+  |    rewritten(description, parent, content) by test (*) as eb5a0daa2192 (glob)
   |
   x  0dec01379d3b (2) B0
-       rewritten by test (*) as b7ea6d14e664 (glob)
+       rewritten(description) by test (*) as b7ea6d14e664 (glob)
   
   $ hg obslog eb5a0daa2192 --no-graph -Tjson | python -m json.tool
   [
@@ -1144,6 +1187,11 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      *, (glob)
+                      *, (glob)
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -1162,6 +1210,9 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -1180,6 +1231,10 @@
       {
           "debugobshistory.markers": [
               {
+                  "debugobshistory.effect": [
+                      "description",
+                      "content"
+                  ],
                   "debugobshistory.marker_date": [
                       *, (glob)
                       0 (glob)
@@ -1289,10 +1344,10 @@
   @  7a230b46bf61 (3) A2
   |
   x  fdf9bde5129a (2) A1
-  |    rewritten by test (*) as 7a230b46bf61 (glob)
+  |    rewritten(description) by test (*) as 7a230b46bf61 (glob)
   |
   x  471f378eab4c (1) A0
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
   $ cd $TESTTMP/local-remote-markers-2
   $ hg pull
@@ -1312,17 +1367,17 @@
   o  7a230b46bf61 (2) A2
   |
   x  fdf9bde5129a
-  |    rewritten by test (*) as 7a230b46bf61 (glob)
+  |    rewritten(description) by test (*) as 7a230b46bf61 (glob)
   |
   @  471f378eab4c (1) A0
-       rewritten by test (*) as fdf9bde5129a (glob)
+       rewritten(description) by test (*) as fdf9bde5129a (glob)
   
   $ hg obslog 7a230b46bf61 --color=debug
   o  [evolve.node|7a230b46bf61] [evolve.rev|(2)] [evolve.short_description|A2]
   |
   x  [evolve.node evolve.missing_change_ctx|fdf9bde5129a]
-  |    [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*)] as [evolve.node|7a230b46bf61] (glob)
+  |    [evolve.verb|rewritten](description) by [evolve.user|test] [evolve.date|(*)] as [evolve.node|7a230b46bf61] (glob)
   |
   @  [evolve.node|471f378eab4c] [evolve.rev|(1)] [evolve.short_description|A0]
-       [evolve.verb|rewritten] by [evolve.user|test] [evolve.date|(*)] as [evolve.node|fdf9bde5129a] (glob)
+       [evolve.verb|rewritten](description) by [evolve.user|test] [evolve.date|(*)] as [evolve.node|fdf9bde5129a] (glob)
   
--- a/tests/test-evolve-templates.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-evolve-templates.t	Fri Jun 16 11:32:21 2017 +0200
@@ -17,7 +17,9 @@
   >     {if(precursors, "\n  semi-colon: {join(precursors, "; ")}")}\
   >     {if(successors, "\n  Successors: {successors}")}\
   >     {if(successors, "\n  semi-colon: {join(successors, "; ")}")}\
-  >     {if(successors, "\n  Fate: {obsfate_quiet}")}\n'
+  >     {if(obsfate, "\n  Fate: {obsfate}")}\n'
+  > fatelog = log -G -T '{node|short}\n{if(obsfate, "  Obsfate: {obsfate}\n")}'
+  > fatelogjson = log -G -T '{node|short} {obsfate|json}\n'
   > EOF
 
 Test templates on amended commit
@@ -31,8 +33,8 @@
   $ mkcommit ROOT
   $ mkcommit A0
   $ echo 42 >> A0
-  $ hg amend -m "A1"
-  $ hg amend -m "A2"
+  $ HGUSER=test1 hg amend -m "A1" --config devel.default-date="1234567890 0"
+  $ HGUSER=test2 hg amend -m "A2" --config devel.default-date="987654321 0"
   $ hg log --hidden -G
   @  changeset:   4:d004c8f274b9
   |  tag:         tip
@@ -70,6 +72,15 @@
   (use 'hg evolve' to update to its successor: d004c8f274b9)
 
 Precursors template should show current revision as it is the working copy
+  $ hg olog tip
+  o  d004c8f274b9 (4) A2
+  |
+  x  a468dc9b3633 (3) A1
+  |    rewritten(description) by test2 (*) as d004c8f274b9 (glob)
+  |
+  @  471f378eab4c (1) A0
+       rewritten(description, content) by test1 (*) as a468dc9b3633 (glob)
+  
   $ hg tlog
   o  d004c8f274b9
   |    Precursors: 471f378eab4c
@@ -77,7 +88,33 @@
   | @  471f378eab4c
   |/     Successors: [d004c8f274b9]
   |      semi-colon: [d004c8f274b9]
-  |      Fate: superseed as d004c8f274b9
+  |      Fate: rewritten by test1, test2 as d004c8f274b9
+  |
+  o  ea207398892e
+  
+  $ hg fatelog -q
+  o  d004c8f274b9
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten as d004c8f274b9
+  |
+  o  ea207398892e
+  
+
+  $ hg fatelog
+  o  d004c8f274b9
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test1, test2 as d004c8f274b9
+  |
+  o  ea207398892e
+  
+  $ hg fatelog -v
+  o  d004c8f274b9
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test1, test2 as d004c8f274b9 (between * and *) (glob)
+  |
   o  ea207398892e
   
   $ hg up 'desc(A1)' --hidden
@@ -93,7 +130,8 @@
   | @  a468dc9b3633
   |/     Successors: [d004c8f274b9]
   |      semi-colon: [d004c8f274b9]
-  |      Fate: superseed as d004c8f274b9
+  |      Fate: rewritten by test2 as d004c8f274b9
+  |
   o  ea207398892e
   
 Precursors template should show the precursor as we force its display with
@@ -107,16 +145,26 @@
   |      semi-colon: 471f378eab4c
   |      Successors: [d004c8f274b9]
   |      semi-colon: [d004c8f274b9]
-  |      Fate: superseed as d004c8f274b9
+  |      Fate: rewritten by test2 as d004c8f274b9
+  |
   | x  f137d23bb3e1
+  | |    Fate: pruned
   | |
   | x  471f378eab4c
   |/     Successors: [a468dc9b3633]
   |      semi-colon: [a468dc9b3633]
-  |      Fate: superseed as a468dc9b3633
+  |      Fate: rewritten by test1 as a468dc9b3633
+  |
   o  ea207398892e
   
-
+  $ hg fatelog -v
+  o  d004c8f274b9
+  |
+  | @  a468dc9b3633
+  |/     Obsfate: rewritten by test2 as d004c8f274b9 (at *) (glob)
+  |
+  o  ea207398892e
+  
   $ hg up 'desc(A2)'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg tlog
@@ -133,16 +181,51 @@
   |      semi-colon: 471f378eab4c
   |      Successors: [d004c8f274b9]
   |      semi-colon: [d004c8f274b9]
-  |      Fate: superseed as d004c8f274b9
+  |      Fate: rewritten by test2 as d004c8f274b9
+  |
   | x  f137d23bb3e1
+  | |    Fate: pruned
   | |
   | x  471f378eab4c
   |/     Successors: [a468dc9b3633]
   |      semi-colon: [a468dc9b3633]
-  |      Fate: superseed as a468dc9b3633
+  |      Fate: rewritten by test1 as a468dc9b3633
+  |
+  o  ea207398892e
+  
+  $ hg fatelog -v
+  @  d004c8f274b9
+  |
   o  ea207398892e
   
 
+  $ hg fatelog -v --hidden
+  @  d004c8f274b9
+  |
+  | x  a468dc9b3633
+  |/     Obsfate: rewritten by test2 as d004c8f274b9 (at *) (glob)
+  |
+  | x  f137d23bb3e1
+  | |    Obsfate: pruned
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test1 as a468dc9b3633 (at *) (glob)
+  |
+  o  ea207398892e
+  
+
+  $ hg fatelogjson --hidden
+  @  d004c8f274b9 ""
+  |
+  | x  a468dc9b3633 [{"markers": [["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad", ["\udcd0\u0004\udcc8\udcf2t\udcb9\udcecH\nG\udca9\u003c\u0010\udcda\udcc5\udcee\udce6:\udcdbx"], 0, [["ef1", "1"], ["user", "test2"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcd0\u0004\udcc8\udcf2t\udcb9\udcecH\nG\udca9\u003c\u0010\udcda\udcc5\udcee\udce6:\udcdbx"], "users": ["test2"], "verb": "rewritten"}] (glob)
+  |/
+  | x  f137d23bb3e1 [{"markers": [], "successors": [], "verb": "pruned"}]
+  | |
+  | x  471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad"], 0, [["ef1", "9"], ["user", "test1"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udca4h\u071b63\udc8b\u0014\udcfd\udcb7\udc82_U\udcce=\udcf4\udce7\u0015\u0017\udcad"], "users": ["test1"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
+
 Test templates with splitted commit
 ===================================
 
@@ -244,9 +327,21 @@
   | @  471597cad322
   |/     Successors: [337fec4d2edc, f257fde29c7a]
   |      semi-colon: [337fec4d2edc, f257fde29c7a]
-  |      Fate: superseed as 337fec4d2edc,f257fde29c7a
+  |      Fate: rewritten by test as 337fec4d2edc, f257fde29c7a
+  |
   o  ea207398892e
   
+  $ hg fatelog
+  o  f257fde29c7a
+  |
+  o  337fec4d2edc
+  |
+  | @  471597cad322
+  |/     Obsfate: rewritten by test as 337fec4d2edc, f257fde29c7a
+  |
+  o  ea207398892e
+  
+
   $ hg up f257fde29c7a
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -271,9 +366,31 @@
   | x  471597cad322
   |/     Successors: [337fec4d2edc, f257fde29c7a]
   |      semi-colon: [337fec4d2edc, f257fde29c7a]
-  |      Fate: superseed as 337fec4d2edc,f257fde29c7a
+  |      Fate: rewritten by test as 337fec4d2edc, f257fde29c7a
+  |
   o  ea207398892e
   
+  $ hg fatelog --hidden
+  @  f257fde29c7a
+  |
+  o  337fec4d2edc
+  |
+  | x  471597cad322
+  |/     Obsfate: rewritten by test as 337fec4d2edc, f257fde29c7a
+  |
+  o  ea207398892e
+  
+
+  $ hg fatelogjson --hidden
+  @  f257fde29c7a ""
+  |
+  o  337fec4d2edc ""
+  |
+  | x  471597cad322 [{"markers": [["G\\u0015\\udc97\\udcca\\udcd3\\"\\udcd1\\udcf6Y\\udcbb\\u0016\\udc97Q\\udcbe\\udc913\\udcda\\udcd9.\\udcf3", ["3\\u007f\\udcecM.\\udcdc\\udcf0\\udce7\\udca4g\\udce3_\\udc81\\udc824\\udcbcb\\u0000h\\udcb5", "\\udcf2W\\udcfd\\udce2\\udc9cz\\udc84|\\udc9b`\\u007fn\\udc95\\udc86V\\udcd0\\udcdf\\u000f\\udcb1\\\\"], 0, [["ef1", "12"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["3\\u007f\\udcecM.\\udcdc\\udcf0\\udce7\\udca4g\\udce3_\\udc81\\udc824\\udcbcb\\u0000h\\udcb5", "\\udcf2W\\udcfd\\udce2\\udc9cz\\udc84|\\udc9b`\\u007fn\\udc95\\udc86V\\udcd0\\udcdf\\u000f\\udcb1\\\\"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
+
 Test templates with folded commit
 ==============================
 
@@ -344,7 +461,16 @@
   | @  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+  $ hg fatelog
+  o  eb5a0daa2192
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
   $ hg up 'desc(B0)' --hidden
@@ -361,13 +487,27 @@
   | @  0dec01379d3b
   | |    Successors: [eb5a0daa2192]
   | |    semi-colon: [eb5a0daa2192]
-  | |    Fate: superseed as eb5a0daa2192
+  | |    Fate: rewritten by test as eb5a0daa2192
+  | |
   | x  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
+  $ hg fatelog
+  o  eb5a0daa2192
+  |
+  | @  0dec01379d3b
+  | |    Obsfate: rewritten by test as eb5a0daa2192
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+
   $ hg up 'desc(C0)'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -387,13 +527,36 @@
   | x  0dec01379d3b
   | |    Successors: [eb5a0daa2192]
   | |    semi-colon: [eb5a0daa2192]
-  | |    Fate: superseed as eb5a0daa2192
+  | |    Fate: rewritten by test as eb5a0daa2192
+  | |
   | x  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
+  $ hg fatelog --hidden
+  @  eb5a0daa2192
+  |
+  | x  0dec01379d3b
+  | |    Obsfate: rewritten by test as eb5a0daa2192
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+
+  $ hg fatelogjson --hidden
+  @  eb5a0daa2192 ""
+  |
+  | x  0dec01379d3b [{"markers": [["\r\udcec\u00017\udc9d;\udce61\udc8cG\u000e\udcad1\udcb1\udcfez\udce7\udccbS\udcd5", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob)
+  | |
+  | x  471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
 
 Test templates with divergence
 ==============================
@@ -477,9 +640,23 @@
   | @  471f378eab4c
   |/     Successors: [fdf9bde5129a], [019fadeab383]
   |      semi-colon: [fdf9bde5129a]; [019fadeab383]
-  |      Fate: superseed as fdf9bde5129a + superseed as 019fadeab383
+  |      Fate: rewritten by test as fdf9bde5129a
+  |    rewritten by test as 019fadeab383
+  |
   o  ea207398892e
   
+  $ hg fatelog
+  o  019fadeab383
+  |
+  | o  fdf9bde5129a
+  |/
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test as fdf9bde5129a
+  |    rewritten by test as 019fadeab383
+  |
+  o  ea207398892e
+  
+
   $ hg up 'desc(A1)'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 Precursors template should not show precursors as it's not displayed in the
@@ -491,6 +668,14 @@
   |/
   o  ea207398892e
   
+
+  $ hg fatelog
+  o  019fadeab383
+  |
+  | @  fdf9bde5129a
+  |/
+  o  ea207398892e
+  
 Precursors template should a precursor as we force its display with --hidden
   $ hg tlog --hidden
   o  019fadeab383
@@ -501,16 +686,46 @@
   |      semi-colon: 471f378eab4c
   |      Successors: [019fadeab383]
   |      semi-colon: [019fadeab383]
-  |      Fate: superseed as 019fadeab383
+  |      Fate: rewritten by test as 019fadeab383
+  |
   | @  fdf9bde5129a
   |/     Precursors: 471f378eab4c
   |      semi-colon: 471f378eab4c
   | x  471f378eab4c
   |/     Successors: [fdf9bde5129a], [65b757b745b9]
   |      semi-colon: [fdf9bde5129a]; [65b757b745b9]
-  |      Fate: superseed as fdf9bde5129a + superseed as 65b757b745b9
+  |      Fate: rewritten by test as fdf9bde5129a
+  |    rewritten by test as 65b757b745b9
+  |
   o  ea207398892e
   
+  $ hg fatelog --hidden
+  o  019fadeab383
+  |
+  | x  65b757b745b9
+  |/     Obsfate: rewritten by test as 019fadeab383
+  |
+  | @  fdf9bde5129a
+  |/
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as fdf9bde5129a
+  |    rewritten by test as 65b757b745b9
+  |
+  o  ea207398892e
+  
+
+  $ hg fatelogjson --hidden
+  o  019fadeab383 ""
+  |
+  | x  65b757b745b9 [{"markers": [["e\udcb7W\udcb7E\udcb95\t\u003c\udc87\udca2\udcbc\u0347u!\udccc\udccf\udcfc\udcbd", ["\u0001\udc9f\udcad\uacc3\udcf6i\udc9f\udca8:\u05fd\udcb4\udcd8.\udcd2\udcc0\udce5\udcab"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\u0001\udc9f\udcad\uacc3\udcf6i\udc9f\udca8:\u05fd\udcb4\udcd8.\udcd2\udcc0\udce5\udcab"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  | @  fdf9bde5129a ""
+  |/
+  | x  471f378eab4c [{"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], "users": ["test"], "verb": "rewritten"}, {"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["e\\udcb7W\\udcb7E\\udcb95\\t\\u003c\\udc87\\udca2\\udcbc\\u0347u!\\udccc\\udccf\\udcfc\\udcbd"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["e\\udcb7W\\udcb7E\\udcb95\\t\\u003c\\udc87\\udca2\\udcbc\\u0347u!\\udccc\\udccf\\udcfc\\udcbd"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
+
 Test templates with amended + folded commit
 ===========================================
 
@@ -592,7 +807,16 @@
   | @  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+  $ hg fatelog
+  o  eb5a0daa2192
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
   $ hg up 'desc(B0)' --hidden
@@ -606,13 +830,27 @@
   | @  0dec01379d3b
   | |    Successors: [eb5a0daa2192]
   | |    semi-colon: [eb5a0daa2192]
-  | |    Fate: superseed as eb5a0daa2192
+  | |    Fate: rewritten by test as eb5a0daa2192
+  | |
   | x  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
+  $ hg fatelog
+  o  eb5a0daa2192
+  |
+  | @  0dec01379d3b
+  | |    Obsfate: rewritten by test as eb5a0daa2192
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+
   $ hg up 'desc(B1)' --hidden
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   working directory parent is obsolete! (b7ea6d14e664)
@@ -624,13 +862,27 @@
   | @  b7ea6d14e664
   | |    Successors: [eb5a0daa2192]
   | |    semi-colon: [eb5a0daa2192]
-  | |    Fate: superseed as eb5a0daa2192
+  | |    Fate: rewritten by test as eb5a0daa2192
+  | |
   | x  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
+  $ hg fatelog
+  o  eb5a0daa2192
+  |
+  | @  b7ea6d14e664
+  | |    Obsfate: rewritten by test as eb5a0daa2192
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+
   $ hg up 'desc(C0)'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg tlog
@@ -647,17 +899,45 @@
   | |    semi-colon: 0dec01379d3b
   | |    Successors: [eb5a0daa2192]
   | |    semi-colon: [eb5a0daa2192]
-  | |    Fate: superseed as eb5a0daa2192
+  | |    Fate: rewritten by test as eb5a0daa2192
+  | |
   | | x  0dec01379d3b
   | |/     Successors: [b7ea6d14e664]
   | |      semi-colon: [b7ea6d14e664]
-  | |      Fate: superseed as b7ea6d14e664
+  | |      Fate: rewritten by test as b7ea6d14e664
+  | |
   | x  471f378eab4c
   |/     Successors: [eb5a0daa2192]
   |      semi-colon: [eb5a0daa2192]
-  |      Fate: superseed as eb5a0daa2192
+  |      Fate: rewritten by test as eb5a0daa2192
+  |
   o  ea207398892e
   
+  $ hg fatelog --hidden
+  @  eb5a0daa2192
+  |
+  | x  b7ea6d14e664
+  | |    Obsfate: rewritten by test as eb5a0daa2192
+  | |
+  | | x  0dec01379d3b
+  | |/     Obsfate: rewritten by test as b7ea6d14e664
+  | |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as eb5a0daa2192
+  |
+  o  ea207398892e
+  
+  $ hg fatelogjson --hidden
+  @  eb5a0daa2192 ""
+  |
+  | x  b7ea6d14e664 [{"markers": [["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "13"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob)
+  | |
+  | | x  0dec01379d3b [{"markers": [["\r\udcec\u00017\udc9d;\udce61\udc8cG\u000e\udcad1\udcb1\udcfez\udce7\udccbS\udcd5", ["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcb7\udceam\u0014\udce6d\udcbd\u0212\"!\udcf7\udc99&1\udcb5\r\udca3\udcfb\u0007"], "users": ["test"], "verb": "rewritten"}] (glob)
+  | |/
+  | x  471f378eab4c [{"markers": [["G\u001f7\udc8e\udcabL^%\udcf6\udcc7\u007fx['\udcc96\udcef\udcb2(t", ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], 0, [["ef1", "9"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["\udcebZ\r\udcaa!\udc92;\udcbf\udc8c\udcae\udcb2\udcc4 \udc85\udcb9\udce4c\udc86\u001f\udcd0"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
 
 Test template with pushed and pulled obs markers
 ==============================================
@@ -742,7 +1022,6 @@
      date:        Thu Jan 01 00:00:00 1970 +0000
      summary:     ROOT
   
-
 Check templates
 ---------------
 
@@ -753,7 +1032,16 @@
   | @  471f378eab4c
   |/     Successors: [7a230b46bf61]
   |      semi-colon: [7a230b46bf61]
-  |      Fate: superseed as 7a230b46bf61
+  |      Fate: rewritten by test as 7a230b46bf61
+  |
+  o  ea207398892e
+  
+  $ hg fatelog --hidden -v
+  o  7a230b46bf61
+  |
+  | @  471f378eab4c
+  |/     Obsfate: rewritten by test as 7a230b46bf61 (between * and *) (glob)
+  |
   o  ea207398892e
   
   $ hg up 'desc(A2)'
@@ -763,6 +1051,11 @@
   |
   o  ea207398892e
   
+  $ hg fatelog -v
+  @  7a230b46bf61
+  |
+  o  ea207398892e
+  
   $ hg tlog --hidden
   @  7a230b46bf61
   |    Precursors: 471f378eab4c
@@ -770,6 +1063,58 @@
   | x  471f378eab4c
   |/     Successors: [7a230b46bf61]
   |      semi-colon: [7a230b46bf61]
-  |      Fate: superseed as 7a230b46bf61
+  |      Fate: rewritten by test as 7a230b46bf61
+  |
+  o  ea207398892e
+  
+  $ hg fatelog --hidden -v
+  @  7a230b46bf61
+  |
+  | x  471f378eab4c
+  |/     Obsfate: rewritten by test as 7a230b46bf61 (between * and *) (glob)
+  |
   o  ea207398892e
   
+
+  $ hg fatelogjson --hidden
+  @  7a230b46bf61 ""
+  |
+  | x  471f378eab4c [{"markers": [["G\\u001f7\\udc8e\\udcabL^%\\udcf6\\udcc7\\u007fx['\\udcc96\\udcef\\udcb2(t", ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z."], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null], ["\\udcfd\\udcf9\\udcbd\\udce5\\u0012\\udc9a(\\udcd4T\\udc8f\\udcad\\udcd3\\udcf6+&\\\\\\udcdd;z.", ["z#\\u000bF\\udcbfa\\udce5\\u000b00\\udc8cl\\udcfd{\\udcd1&\\udc9e\\udcf5G\\u0002"], 0, [["ef1", "1"], ["user", "test"]], [*, 0], null]], "max_date": [*, 0], "min_date": [*, 0], "successors": ["z#\\u000bF\\udcbfa\\udce5\\u000b00\\udc8cl\\udcfd{\\udcd1&\\udc9e\\udcf5G\\u0002"], "users": ["test"], "verb": "rewritten"}] (glob)
+  |/
+  o  ea207398892e ""
+  
+
+Test templates with pruned commits
+==================================
+
+Test setup
+----------
+
+  $ hg init $TESTTMP/templates-local-prune
+  $ cd $TESTTMP/templates-local-prune
+  $ mkcommit ROOT
+  $ mkcommit A0
+  $ hg prune .
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  working directory now at ea207398892e
+  1 changesets pruned
+
+Check output
+------------
+
+  $ hg up "desc(A0)" --hidden
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  working directory parent is obsolete! (471f378eab4c)
+  (use 'hg evolve' to update to its parent successor)
+  $ hg tlog
+  @  471f378eab4c
+  |    Fate: pruned
+  |
+  o  ea207398892e
+  
+  $ hg fatelog -v
+  @  471f378eab4c
+  |    Obsfate: pruned
+  |
+  o  ea207398892e
+  
--- a/tests/test-evolve.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-evolve.t	Fri Jun 16 11:32:21 2017 +0200
@@ -336,10 +336,10 @@
   @  0:e55e0562ee93@default(public) base
   
   $ hg debugobsolete
-  73296a82292a76fb8a7061969d2489ec0d84cd5e 6992c59c6b06a1b4a92e24ff884829ae026d018b 0 (*) {'user': 'test'} (glob)
-  c97947cdc7a2a11cf78419f5c2c3dd3944ec79e8 0 {73296a82292a76fb8a7061969d2489ec0d84cd5e} (*) {'user': 'test'} (glob)
-  568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 (*) {'user': 'test'} (glob)
-  c296b79833d1d497f33144786174bf35e04e44a3 0 {568a468b60fc99a42d5d4ddbe181caff1eef308d} (*) {'user': 'test'} (glob)
+  73296a82292a76fb8a7061969d2489ec0d84cd5e 6992c59c6b06a1b4a92e24ff884829ae026d018b 0 (*) {'ef1': '8', 'user': 'test'} (glob)
+  c97947cdc7a2a11cf78419f5c2c3dd3944ec79e8 0 {73296a82292a76fb8a7061969d2489ec0d84cd5e} (*) {'ef1': '0', 'user': 'test'} (glob)
+  568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 (*) {'ef1': '8', 'user': 'test'} (glob)
+  c296b79833d1d497f33144786174bf35e04e44a3 0 {568a468b60fc99a42d5d4ddbe181caff1eef308d} (*) {'ef1': '0', 'user': 'test'} (glob)
   $ hg evolve
   move:[4] another feature (child of 568a468b60fc)
   atop:[6] a nifty feature
@@ -519,7 +519,8 @@
   $ hg --config extensions.hgext.mq= strip 'extinct()'
   abort: empty revision set
   [255]
-  $ hg --config extensions.hgext.mq= strip --hidden 'extinct()'
+(do some garbare collection)
+  $ hg --config extensions.hgext.mq= strip --hidden 'extinct()'  --config devel.strip-obsmarkers=no
   saved backup bundle to $TESTTMP/alpha/.hg/strip-backup/e87767087a57-d7bd82e9-backup.hg (glob)
   $ hg verify
   checking changesets
@@ -588,8 +589,8 @@
   o  0:8685c6d34325@default(draft) add 0
   
   $ hg debugobsolete
-  0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 (*) {'user': 'test'} (glob)
-  db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 (*) {'user': 'test'} (glob)
+  0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 (*) {'ef1': '4', 'user': 'test'} (glob)
+  db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 (*) {'ef1': '13', 'user': 'test'} (glob)
 
 Test graft --continue
 
@@ -633,9 +634,9 @@
   o  0:8685c6d34325@default(draft) add 0
   
   $ hg debugobsolete
-  0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 (*) {'user': 'test'} (glob)
-  db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 (*) {'user': 'test'} (glob)
-  a5bfd90a2f29c7ccb8f917ff4e5013a9053d0a04 920e58bb443b73eea9d6d65570b4241051ea3229 0 (*) {'user': 'test'} (glob)
+  0e84df4912da4c7cad22a3b4fcfd58ddfb7c8ae9 0b9e50c35132ff548ec0065caea6a87e1ebcef32 0 (*) {'ef1': '4', 'user': 'test'} (glob)
+  db038628b9e56f51a454c0da0c508df247b41748 acb28cd497b7f8767e01ef70f68697a959573c2d 0 (*) {'ef1': '13', 'user': 'test'} (glob)
+  a5bfd90a2f29c7ccb8f917ff4e5013a9053d0a04 920e58bb443b73eea9d6d65570b4241051ea3229 0 (*) {'ef1': '12', 'user': 'test'} (glob)
 
 Test touch
 
@@ -773,12 +774,12 @@
   @    d26d339c513f (12) add 4
   |\
   x |    af636757ce3b (11) add 3
-  |\ \     rewritten by test (*) as d26d339c513f (glob)
+  |\ \     rewritten(description, user, parent, content) by test (*) as d26d339c513f (glob)
   | | |
   | \ \
   | |\ \
   | | | x  ce341209337f (4) add 4
-  | | |      rewritten by test (*) as d26d339c513f (glob)
+  | | |      rewritten(description, user, content) by test (*) as d26d339c513f (glob)
   | | |
 
 Test obsstore stat
@@ -792,13 +793,14 @@
                 2 successors:         0
       more than 2 successors:         0
       available  keys:
+                  ef1:               10
                  user:               10
   marker size:
       format v1:
-          smallest length:           69
-          longer length:             69
-          median length:             69
-          mean length:               69
+          smallest length:           75
+          longer length:             76
+          median length:             76
+          mean length:               75
       format v0:
           smallest length:           * (glob)
           longer length:             * (glob)
--- a/tests/test-exchange-obsmarkers-case-B1.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B1.t	Fri Jun 16 11:32:21 2017 +0200
@@ -70,18 +70,18 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 926d9d84b97b3483891ae983990ad87c1f7827e9
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af c2398c6305068b6b377f36402c507b713a7c586f
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 8408066feeb4e37fa26d01fe5c93bea92e450608
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 535b0c799a3a273fee10934abcb9e8eb9924b4bf
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             1 f5bc6836db60            0            2            2 926d9d84b97b
+             1 f5bc6836db60            0            2            2 8408066feeb4
              0 a9bdc8b26820            0            1            1 000000000000
-             1 f5bc6836db60            1            1            2 926d9d84b97b
+             1 f5bc6836db60            1            1            2 8408066feeb4
   $ cd ..
   $ cd ..
 
@@ -93,7 +93,7 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -102,7 +102,7 @@
   no changes found
   ## post push state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
@@ -110,6 +110,6 @@
   no changes found
   ## post pull state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
--- a/tests/test-exchange-obsmarkers-case-B2.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B2.t	Fri Jun 16 11:32:21 2017 +0200
@@ -61,15 +61,15 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 52a5380bc04783a9ad43bb2ab2f47a02ef02adcc
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 6892277170c13fec6712303d639965a454b5cabf
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 62d86865fd15a1e1b0ef16ebb9cb851689032dd8
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 6e3ba325674c3b035b63ec3db449ad2853a18372
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             0 a9bdc8b26820            0            1            1 52a5380bc047
+             0 a9bdc8b26820            0            1            1 62d86865fd15
   $ cd ..
   $ cd ..
 
@@ -84,7 +84,7 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -94,9 +94,9 @@
   remote: 1 new obsolescence markers
   ## post push state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -104,11 +104,11 @@
   1 new obsolescence markers
   ## post pull state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Actual Test (bare push version)
 -----------------------------------
@@ -117,7 +117,7 @@
   ## Running testcase B.2.b
   ## initial state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -127,9 +127,9 @@
   remote: 1 new obsolescence markers
   ## post push state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -138,8 +138,8 @@
   1 new obsolescence markers
   ## post pull state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-B3.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B3.t	Fri Jun 16 11:32:21 2017 +0200
@@ -72,19 +72,19 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
   f5bc6836db60e308a17ba08bf050154ba9c4fad7 0000000000000000000000000000000000000000
-  35b1839966785d5703a01607229eea932db42f87 631ab4cd02ffa1d144dc8f32a18be574076031e3
-  e56289ab6378dc752fd7965f8bf66b58bda740bd a37fa02ad96f2e8ecce7080e73cfe22af8e1b14f
+  35b1839966785d5703a01607229eea932db42f87 d6033d6b3eb3451694dde5b6dd2356ae57eff23b
+  e56289ab6378dc752fd7965f8bf66b58bda740bd f4bc7329023b9b1f7db3b7989fd7f80a2ca7a008
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             2 35b183996678            0            2            2 631ab4cd02ff
+             2 35b183996678            0            2            2 d6033d6b3eb3
              1 f5bc6836db60            0            2            2 000000000000
-             2 35b183996678            1            1            2 631ab4cd02ff
+             2 35b183996678            1            1            2 d6033d6b3eb3
              0 a9bdc8b26820            0            1            1 000000000000
              1 f5bc6836db60            1            1            2 000000000000
   $ cd ..
@@ -98,7 +98,7 @@
   # testing echange of "A" (f5bc6836db60)
   ## initial state
   # obstore: main
-  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "A" from main to pushdest
@@ -110,7 +110,7 @@
   remote: added 1 changesets with 1 changes to 1 files
   ## post push state
   # obstore: main
-  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pulling "f5bc6836db60" from main into pulldest
@@ -123,7 +123,7 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
 
--- a/tests/test-exchange-obsmarkers-case-B4.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B4.t	Fri Jun 16 11:32:21 2017 +0200
@@ -87,19 +87,19 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 1900882e85db10a1dc5bc7748f436a8a834356c6
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 c27e764c783f451ef3aa40daf2a3795e6674cd06
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 907beff79fdff2b82b5d3bed7989107a6d744508
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 86e6b5a5ad828d83b3205ea4ca11154972da19a1
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 000a06f93df9cdd3c570d38aef8cd21a4a25df9b
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 ff621c458a04f2994124b0ef4b43572f7eb2335a
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 5afda6754e34bfe9ac1942df123711f929054273
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed f3513f70438639d6687bbec74f4d3fd11853f471
   obshashrange
   ============
            rev         node        index         size        depth      obshash
              2 f6fbb35d8ac9            0            3            3 000000000000
              1 f5bc6836db60            0            2            2 000000000000
-             0 a9bdc8b26820            0            1            1 1900882e85db
+             0 a9bdc8b26820            0            1            1 000a06f93df9
              1 f5bc6836db60            1            1            2 000000000000
              2 f6fbb35d8ac9            2            1            3 000000000000
   $ cd ..
@@ -116,7 +116,7 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -126,9 +126,9 @@
   remote: 1 new obsolescence markers
   ## post push state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -136,11 +136,11 @@
   1 new obsolescence markers
   ## post pull state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Actual Test (bare push version)
 -----------------------------------
@@ -149,7 +149,7 @@
   ## Running testcase B.4.b
   ## initial state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -159,9 +159,9 @@
   remote: 1 new obsolescence markers
   ## post push state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -170,8 +170,8 @@
   1 new obsolescence markers
   ## post pull state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-B5.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B5.t	Fri Jun 16 11:32:21 2017 +0200
@@ -72,7 +72,7 @@
   $ hg debugobsolete --hidden `getid 'desc(A0)'` `getid 'desc(A1)'`
   $ hg debugobsolete --hidden aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(B0)'`
   $ hg debugobsolete --hidden `getid 'desc(B0)'` `getid 'desc(B1)'`
-  $ hg prune -qd '0 0' 'desc(B1)'
+  $ hg prune -qd '0 0' 'desc(B1)' 
   $ hg log -G --hidden
   x  069b05c3876d (draft): B1
   |
@@ -89,30 +89,30 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
+  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000
   6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 13bd00d88332fcd3fe634ed42f9d35c9cfc06398
   1d0f3cd253006f014c7687a78abbc9287db4101d 01d985a82467333a4de7a5b4e8a0de3286f8bda8
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 d2b1159bcf3694aabc3674785b1859544c35357d
-  069b05c3876d56f62895e853a501ea58ea85f68d a07163ee7e7cda4065f7593715b7b12f833f7065
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 13bd4798a9a787c0b54db36e03ec580012600b50
+  069b05c3876d56f62895e853a501ea58ea85f68d 35916a1d760564c67d3a68921fd5908f28b486c0
   obshashrange
   ============
            rev         node        index         size        depth      obshash
              3 1d0f3cd25300            0            4            4 000000000000
              3 1d0f3cd25300            2            2            4 000000000000
              1 28b51eb45704            0            2            2 000000000000
-             4 e5ea8f9c7314            0            2            2 d2b1159bcf36
+             4 e5ea8f9c7314            0            2            2 13bd4798a9a7
              3 1d0f3cd25300            3            1            4 000000000000
              1 28b51eb45704            1            1            2 000000000000
              2 6e72f0a95b5e            2            1            3 13bd00d88332
              0 a9bdc8b26820            0            1            1 000000000000
-             4 e5ea8f9c7314            1            1            2 d2b1159bcf36
+             4 e5ea8f9c7314            1            1            2 13bd4798a9a7
   $ cd ..
   $ cd ..
 
@@ -124,10 +124,10 @@
   # testing echange of "C" (1d0f3cd25300)
   ## initial state
   # obstore: main
-  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "C" from main to pushdest
@@ -140,12 +140,12 @@
   remote: 1 new obsolescence markers
   ## post push state
   # obstore: main
-  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "1d0f3cd25300" from main into pulldest
   pulling from main
@@ -158,11 +158,11 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (*) {'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-B6.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B6.t	Fri Jun 16 11:32:21 2017 +0200
@@ -70,19 +70,19 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 86e41541149f4b6cccc5fd131d744d8e83a681e5
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 f2e05412d3f1d5bc1ae647cf9efc43e0399c26ca
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b 974507d1c466d0aa86d288836194339ed3b98736
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 1e0b6dce792c229c865a543c6f8964b4bba5fb5a
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 6d4265767de9c3095bc6ec62648c64610d3fe9cd
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 52260e159f886b089e44a0eb7325683e93a18a5a
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b 4f5b201f1c8023e258712dcd02ca1239b41a91c4
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 8e0762e9ba2cff99bfa111d56788341de35e80b1
   obshashrange
   ============
            rev         node        index         size        depth      obshash
              1 f5bc6836db60            0            2            2 000000000000
-             0 a9bdc8b26820            0            1            1 86e41541149f
+             0 a9bdc8b26820            0            1            1 6d4265767de9
              1 f5bc6836db60            1            1            2 000000000000
   $ cd ..
   $ cd ..
@@ -95,8 +95,8 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -106,11 +106,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -118,12 +118,12 @@
   2 new obsolescence markers
   ## post pull state
   # obstore: main
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (*) {'user': 'test'} (glob)
+  f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
 
--- a/tests/test-exchange-obsmarkers-case-B7.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-B7.t	Fri Jun 16 11:32:21 2017 +0200
@@ -66,18 +66,18 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 926d9d84b97b3483891ae983990ad87c1f7827e9
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af c2398c6305068b6b377f36402c507b713a7c586f
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 8408066feeb4e37fa26d01fe5c93bea92e450608
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 535b0c799a3a273fee10934abcb9e8eb9924b4bf
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             1 f5bc6836db60            0            2            2 926d9d84b97b
+             1 f5bc6836db60            0            2            2 8408066feeb4
              0 a9bdc8b26820            0            1            1 000000000000
-             1 f5bc6836db60            1            1            2 926d9d84b97b
+             1 f5bc6836db60            1            1            2 8408066feeb4
   $ cd ..
   $ cd ..
 
@@ -89,7 +89,7 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -98,7 +98,7 @@
   no changes found
   ## post push state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
@@ -106,6 +106,6 @@
   no changes found
   ## post pull state
   # obstore: main
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
--- a/tests/test-exchange-obsmarkers-case-C1.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-C1.t	Fri Jun 16 11:32:21 2017 +0200
@@ -70,17 +70,17 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 1ce18e5a71f78d443a80c819f2f7197c4706af70
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 5c3c935df6f4007c633c3386d6f58b22c274809e
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af bccb3d243420ef26782fa11f209830db360c34b2
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 2eae6a894c52a556ac692c2d0da80e81548b9f08
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 36f7fefb84e169c95144b085ce25607908f43c05
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af b5e9a0fe6060fb80fa51366d6fc5b8f3a5c6e1ed
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             0 a9bdc8b26820            0            1            1 1ce18e5a71f7
+             0 a9bdc8b26820            0            1            1 2eae6a894c52
   $ cd ..
   $ cd ..
 
@@ -95,8 +95,8 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -106,11 +106,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -118,14 +118,14 @@
   2 new obsolescence markers
   ## post pull state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Actual Test (bare push)
 -------------------------------------
@@ -134,8 +134,8 @@
   ## Running testcase C.1.b
   ## initial state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -145,11 +145,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -158,11 +158,11 @@
   2 new obsolescence markers
   ## post pull state
   # obstore: main
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (*) {'ef1': '*', 'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-C2.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-C2.t	Fri Jun 16 11:32:21 2017 +0200
@@ -74,20 +74,20 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 72f95b7b9fa12243aeb90433d211f2c38263da31
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 9d758cd0bf02f27e9b7de5665b10ceb1dc8bb1f1
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 289cb0d058c81c763eca8bb438657dba9a7ba646
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 3ef2e3b1b37e7a3a8a885b2ff08fa626f1d3aaa9
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 75187bd51740051fdf046fae67687fb056343515
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 163059af30d498e215e86e1ead6ab749521c38be
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             3 e5ea8f9c7314            0            2            2 289cb0d058c8
+             3 e5ea8f9c7314            0            2            2 163059af30d4
              0 a9bdc8b26820            0            1            1 000000000000
-             3 e5ea8f9c7314            1            1            2 289cb0d058c8
+             3 e5ea8f9c7314            1            1            2 163059af30d4
   $ cd ..
   $ cd ..
 
@@ -102,8 +102,8 @@
   # testing echange of "A1" (e5ea8f9c7314)
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "A1" from main to pushdest
@@ -116,11 +116,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "e5ea8f9c7314" from main into pulldest
   pulling from main
@@ -133,14 +133,14 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
 
 Actual Test (bare push)
 -------------------------------------
@@ -149,8 +149,8 @@
   ## Running testcase C.2.b
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -163,11 +163,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -180,11 +180,11 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-C3.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-C3.t	Fri Jun 16 11:32:21 2017 +0200
@@ -77,19 +77,19 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 40be80b35671116f2c61ef25797806536a6eb5a0
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f beac7228bbe708bc7c9181c3c27f8a17f21dbd9f
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 04b20150f38991d297ecfe0bf0f77deb816aed9d
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 a59f7d5ea437389a33d2e98b9b85ba1d568a743e
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 683625eeec1568e2bc1acd6e956de89102cea428
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f b8b53eb8289f96d4de4e2add5dd8605b4af5bab9
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 26513b68de67734af5dbfeb3b4475aa3b14ed940
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 3edacd6f3e9c4546d31990ce890315abbeb17eab
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             0 a9bdc8b26820            0            1            1 40be80b35671
+             0 a9bdc8b26820            0            1            1 683625eeec15
   $ cd ..
   $ cd ..
 
@@ -104,9 +104,9 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -116,13 +116,13 @@
   remote: 3 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -130,17 +130,17 @@
   3 new obsolescence markers
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Actual Test (bare push)
 -------------------------------------
@@ -149,9 +149,9 @@
   ## Running testcase C.3.b
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -161,13 +161,13 @@
   remote: 3 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -176,14 +176,14 @@
   3 new obsolescence markers
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-C4.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-C4.t	Fri Jun 16 11:32:21 2017 +0200
@@ -79,21 +79,21 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (*) {'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 a9c02d134f5b98acc74d1dc4eb28fd59f958a2bd
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 619b4d13bd9878f04d7208dcfcf1e89da826f6be
-  35b1839966785d5703a01607229eea932db42f87 ddeb7b7a87378f59cecb36d5146df0092b6b3327
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0ef78fef48a60c677f55ba6efa4126dab2d6caf2
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 172c7e3f43e9982efc74a27d34bd7a54cc158b57
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 c195f40b705423f406e537d1c64f6bc131a80214
+  35b1839966785d5703a01607229eea932db42f87 76197cf2f9c1dcf5baa6cc3f4057980055353c03
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed e0a3b65709a8a1938e6c6cfc49a45253849e31a2
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             2 35b183996678            0            2            2 2a098b4a877f
+             2 35b183996678            0            2            2 8d1b3b767a40
              2 35b183996678            1            1            2 916e804c50de
-             0 a9bdc8b26820            0            1            1 a9c02d134f5b
+             0 a9bdc8b26820            0            1            1 172c7e3f43e9
   $ cd ..
   $ cd ..
 
@@ -105,9 +105,9 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (*) {'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -117,12 +117,12 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (*) {'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
   pulling from main
@@ -130,12 +130,12 @@
   2 new obsolescence markers
   ## post pull state
   # obstore: main
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (*) {'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
+  f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (*) {'user': 'test'} (glob)
--- a/tests/test-exchange-obsmarkers-case-D1.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-D1.t	Fri Jun 16 11:32:21 2017 +0200
@@ -63,7 +63,7 @@
   $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'`
   $ hg prune -d '0 0' 'desc(B)'
   1 changesets pruned
-  $ hg strip --hidden -q 'desc(A0)'
+  $ hg strip --hidden -q 'desc(A0)' --config devel.strip-obsmarkers=no
   $ hg log -G --hidden
   @  e5ea8f9c7314 (draft): A1
   |
@@ -72,18 +72,18 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 289cb0d058c81c763eca8bb438657dba9a7ba646
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 163059af30d498e215e86e1ead6ab749521c38be
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             1 e5ea8f9c7314            0            2            2 289cb0d058c8
+             1 e5ea8f9c7314            0            2            2 163059af30d4
              0 a9bdc8b26820            0            1            1 000000000000
-             1 e5ea8f9c7314            1            1            2 289cb0d058c8
+             1 e5ea8f9c7314            1            1            2 163059af30d4
   $ cd ..
   $ cd ..
 
@@ -98,8 +98,8 @@
   # testing echange of "A1" (e5ea8f9c7314)
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "A1" from main to pushdest
@@ -112,11 +112,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "e5ea8f9c7314" from main into pulldest
   pulling from main
@@ -129,14 +129,14 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
 
 Actual Test (base push)
 ---------------------------
@@ -145,8 +145,8 @@
   ## Running testcase D.1.b
   ## initial state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -159,11 +159,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -176,12 +176,12 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
 
--- a/tests/test-exchange-obsmarkers-case-D2.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-D2.t	Fri Jun 16 11:32:21 2017 +0200
@@ -58,7 +58,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   working directory now at a9bdc8b26820
   1 changesets pruned
-  $ hg strip --hidden -q 'desc(A1)'
+  $ hg strip --hidden -q 'desc(A1)' --config devel.strip-obsmarkers=no
   $ hg log -G --hidden
   x  28b51eb45704 (draft): A0
   |
@@ -67,16 +67,16 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
-  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 554c0b12f7d9fff20cb904c26e12eee337e3309c
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 5c81c58ce0a8ad61dd9cf4c6949846b5990af30d
+  a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 c14d90ad60c950e75009151899c742ce8cc9b2e6
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e08003a7b0ea2ec7ec7e07708d34cf3819aa8009
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             0 a9bdc8b26820            0            1            1 554c0b12f7d9
+             0 a9bdc8b26820            0            1            1 c14d90ad60c9
   $ cd ..
   $ cd ..
 
@@ -87,8 +87,8 @@
   ## Running testcase D.2
   ## initial state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing from main to pushdest
@@ -98,11 +98,11 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling from main into pulldest
   pulling from main
@@ -111,12 +111,12 @@
   2 new obsolescence markers
   ## post pull state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pulldest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (*) {'ef1': '*', 'user': 'test'} (glob)
 
--- a/tests/test-exchange-obsmarkers-case-D3.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-D3.t	Fri Jun 16 11:32:21 2017 +0200
@@ -61,7 +61,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   working directory now at 35b183996678
   1 changesets pruned
-  $ hg strip --hidden -q 'desc(A1)'
+  $ hg strip --hidden -q 'desc(A1)' --config devel.strip-obsmarkers=no
   $ hg log -G --hidden
   @  35b183996678 (draft): B
   |
@@ -72,18 +72,18 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
+  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000
-  35b1839966785d5703a01607229eea932db42f87 65a9f21dff0702355e973a8f31d3b3b7e59376fb
+  35b1839966785d5703a01607229eea932db42f87 43ff2c20d850ad18dee0f7f252c98c1f1a0cfd5c
   obshashrange
   ============
            rev         node        index         size        depth      obshash
-             2 35b183996678            0            2            2 65a9f21dff07
-             2 35b183996678            1            1            2 65a9f21dff07
+             2 35b183996678            0            2            2 43ff2c20d850
+             2 35b183996678            1            1            2 43ff2c20d850
              0 a9bdc8b26820            0            1            1 000000000000
   $ cd ..
   $ cd ..
@@ -96,8 +96,8 @@
   # testing echange of "O" (a9bdc8b26820)
   ## initial state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
+  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "O" from main to pushdest
@@ -106,8 +106,8 @@
   no changes found
   ## post push state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
+  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pulling "a9bdc8b26820" from main into pulldest
@@ -115,8 +115,8 @@
   no changes found
   ## post pull state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (*) {'user': 'test'} (glob)
+  6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (*) {'ef1': '*', 'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
 
--- a/tests/test-exchange-obsmarkers-case-D4.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-exchange-obsmarkers-case-D4.t	Fri Jun 16 11:32:21 2017 +0200
@@ -76,10 +76,10 @@
   $ inspect_obsmarkers
   obsstore content
   ================
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (*) {'user': 'test'} (glob)
+  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
   obshashtree
   ===========
   a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000
@@ -106,10 +106,10 @@
   # testing echange of "A1" (e5ea8f9c7314)
   ## initial state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
   # obstore: pulldest
   ## pushing "A1" from main to pushdest
@@ -122,13 +122,13 @@
   remote: 2 new obsolescence markers
   ## post push state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
   ## pulling "e5ea8f9c7314" from main into pulldest
   pulling from main
@@ -141,13 +141,13 @@
   (run 'hg update' to get a working copy)
   ## post pull state
   # obstore: main
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
+  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (*) {'user': 'test'} (glob)
   # obstore: pushdest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
   # obstore: pulldest
-  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  28b51eb45704506b5c603decd6bf7ac5e0f6a52f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0 (*) {'user': 'test'} (glob)
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (*) {'user': 'test'} (glob)
--- a/tests/test-obsconvert.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-obsconvert.t	Fri Jun 16 11:32:21 2017 +0200
@@ -15,50 +15,50 @@
 
 Test conversion between obsolete marker formats
   $ hg debugobsolete
-  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'user': 'test'} (glob)
-  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'user': 'test'} (glob)
-  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'user': 'test'} (glob)
-  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'user': 'test'} (glob)
-  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'user': 'test'} (glob)
-  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'user': 'test'} (glob)
-  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'user': 'test'} (glob)
-  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'user': 'test'} (glob)
+  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob)
+  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob)
+  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob)
+  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg debugobsconvert --new-format 0
   Old store is version 1, will rewrite in version 0
   Done!
   $ hg debugobsolete
-  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'user': 'test'} (glob)
-  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'user': 'test'} (glob)
-  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'user': 'test'} (glob)
-  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'user': 'test'} (glob)
-  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'user': 'test'} (glob)
-  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'user': 'test'} (glob)
-  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'user': 'test'} (glob)
-  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'user': 'test'} (glob)
+  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob)
+  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob)
+  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob)
+  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg debugobsconvert --new-format 0
   abort: New format is the same as the old format, not upgrading!
   [255]
   $ hg debugobsolete
-  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'user': 'test'} (glob)
-  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'user': 'test'} (glob)
-  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'user': 'test'} (glob)
-  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'user': 'test'} (glob)
-  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'user': 'test'} (glob)
-  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'user': 'test'} (glob)
-  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'user': 'test'} (glob)
-  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'user': 'test'} (glob)
+  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob)
+  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob)
+  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob)
+  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg debugobsconvert --new-format 1
   Old store is version 0, will rewrite in version 1
   Done!
   $ hg debugobsolete
-  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'user': 'test'} (glob)
-  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'user': 'test'} (glob)
-  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'user': 'test'} (glob)
-  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'user': 'test'} (glob)
-  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'user': 'test'} (glob)
-  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'user': 'test'} (glob)
-  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'user': 'test'} (glob)
-  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'user': 'test'} (glob)
+  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob)
+  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob)
+  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob)
+  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Test that the default is some reasonably modern format (first downgrade)
   $ hg debugobsconvert --new-format 0
@@ -68,11 +68,11 @@
   Old store is version 0, will rewrite in version 1
   Done!
   $ hg debugobsolete
-  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'user': 'test'} (glob)
-  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'user': 'test'} (glob)
-  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'user': 'test'} (glob)
-  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'user': 'test'} (glob)
-  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'user': 'test'} (glob)
-  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'user': 'test'} (glob)
-  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'user': 'test'} (glob)
-  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'user': 'test'} (glob)
+  e63c23eaa88ae77967edcf4ea194d31167c478b0 b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  a5b276878fa564da042b4b9efef3713ceea20350 0 {e63c23eaa88ae77967edcf4ea194d31167c478b0} (*) {'ef1': '*', 'user': 'test'} (glob)
+  b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34 384fc811182687231962e486f23ea8c5bab7a2d3 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  2291082406feb57d0f83b9b0a6777b6074f3fde6 0 {b81ac6b9d2a55f9a7a6b90a006b1aab0568d6d34} (*) {'ef1': '*', 'user': 'test'} (glob)
+  384fc811182687231962e486f23ea8c5bab7a2d3 949d379b3c3bf051906bc3528c049cb536e2ec86 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  1616bdbe82d3fd1fb7c4e068aee277835672ffdc 0 {384fc811182687231962e486f23ea8c5bab7a2d3} (*) {'ef1': '*', 'user': 'test'} (glob)
+  949d379b3c3bf051906bc3528c049cb536e2ec86 f2e4c45b2a4a58ccf7ef6825b8fa5685873cd2f7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  8668d55aac650158bb510be6d47d21e3db9e5c75 0 {949d379b3c3bf051906bc3528c049cb536e2ec86} (*) {'ef1': '*', 'user': 'test'} (glob)
--- a/tests/test-obsolete.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-obsolete.t	Fri Jun 16 11:32:21 2017 +0200
@@ -34,7 +34,7 @@
   0d3f46688ccc6e756c7e96cf64c391c411309597
   $ hg debugobsolete 4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597
   $ hg debugobsolete
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (*) {'user': 'test'} (glob)
 
 
 Test hidden() revset
@@ -639,17 +639,17 @@
      summary:     add a
   
   $ hg debugobsolete | grep -v 33d458d86621f3186c40bfccd77652f4a122743e
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  0d3f46688ccc6e756c7e96cf64c391c411309597 725c380fe99b5e76613493f0903e8d11ddc70d54 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 95de7fc6918dea4c9c8d5382f50649794b474c4a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  95de7fc6918dea4c9c8d5382f50649794b474c4a 909a0fb57e5d909f353d89e394ffd7e0890fec88 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  909a0fb57e5d909f353d89e394ffd7e0890fec88 159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  1f0dee641bb7258c56bd60e93edfa2405381c41e 83b5778897adafb967ef2f75be3aaa4fce49a4cc 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  83b5778897adafb967ef2f75be3aaa4fce49a4cc 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  0d3f46688ccc6e756c7e96cf64c391c411309597 2033b4e494742365851fac84d276640cbf52833e 0 (*) {'user': 'test'} (glob)
-  159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 0 (*) {'user': 'test'} (glob)
-  9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 6db5e282cb91df5c43ff1f1287c119ff83230d42 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  0b1b6dd009c037985363e2290a0b579819f659db 705ab2a6b72e2cd86edb799ebe15f2695f86143e 0 (*) {'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (*) {'user': 'test'} (glob)
+  0d3f46688ccc6e756c7e96cf64c391c411309597 725c380fe99b5e76613493f0903e8d11ddc70d54 0 (*) {'user': 'test'} (glob)
+  a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 95de7fc6918dea4c9c8d5382f50649794b474c4a 0 (*) {'user': 'test'} (glob)
+  95de7fc6918dea4c9c8d5382f50649794b474c4a 909a0fb57e5d909f353d89e394ffd7e0890fec88 0 (*) {'user': 'test'} (glob)
+  909a0fb57e5d909f353d89e394ffd7e0890fec88 159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 0 (*) {'user': 'test'} (glob)
+  1f0dee641bb7258c56bd60e93edfa2405381c41e 83b5778897adafb967ef2f75be3aaa4fce49a4cc 0 (*) {'user': 'test'} (glob)
+  83b5778897adafb967ef2f75be3aaa4fce49a4cc 0 (*) {'user': 'test'} (glob)
+  0d3f46688ccc6e756c7e96cf64c391c411309597 2033b4e494742365851fac84d276640cbf52833e 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  9468a5f5d8b2c5d91e17474e95ae4791e9718fdf 6db5e282cb91df5c43ff1f1287c119ff83230d42 0 (*) {'user': 'test'} (glob)
+  0b1b6dd009c037985363e2290a0b579819f659db 705ab2a6b72e2cd86edb799ebe15f2695f86143e 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 #no produced by 2.3
 33d458d86621f3186c40bfccd77652f4a122743e 3734a65252e69ddcced85901647a4f335d40de1e 0 {'date': '* *', 'user': 'test'} (glob)
 
@@ -693,11 +693,11 @@
   [2]
   $ hg olog
   @  0d3f46688ccc (3) add obsol_c
-  |    rewritten by test (*) as 2033b4e49474 (glob)
-  |    rewritten by test (Thu Jan 01 00:00:00 1970 +0000) as 725c380fe99b
+  |    rewritten(parent) by test (*) as 2033b4e49474 (glob)
+  |    rewritten by test (*) as 725c380fe99b (glob)
   |
   x  4538525df7e2 (2) add c
-       rewritten by test (Thu Jan 01 00:00:00 1970 +0000) as 0d3f46688ccc
+       rewritten by test (*) as 0d3f46688ccc (glob)
   
 
 Check import reports new unstable changeset:
@@ -826,18 +826,18 @@
 Simple rewrite
 
   $ hg  --hidden debugobsolete --rev 3
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0d3f46688ccc6e756c7e96cf64c391c411309597 0 (*) {'user': 'test'} (glob)
 
 simple rewrite with a prune attached to it
 
   $ hg debugobsolete --rev 15
-  0b1b6dd009c037985363e2290a0b579819f659db 705ab2a6b72e2cd86edb799ebe15f2695f86143e 0 (*) {'user': 'test'} (glob)
-  33d458d86621f3186c40bfccd77652f4a122743e 0 {0b1b6dd009c037985363e2290a0b579819f659db} (*) {'user': 'test'} (glob)
+  0b1b6dd009c037985363e2290a0b579819f659db 705ab2a6b72e2cd86edb799ebe15f2695f86143e 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  33d458d86621f3186c40bfccd77652f4a122743e 0 {0b1b6dd009c037985363e2290a0b579819f659db} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Transitive rewrite
 
   $ hg --hidden debugobsolete --rev 8
-  909a0fb57e5d909f353d89e394ffd7e0890fec88 159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  95de7fc6918dea4c9c8d5382f50649794b474c4a 909a0fb57e5d909f353d89e394ffd7e0890fec88 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
-  a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 95de7fc6918dea4c9c8d5382f50649794b474c4a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+  909a0fb57e5d909f353d89e394ffd7e0890fec88 159dfc9fa5d334d7e03a0aecfc7f7ab4c3431fea 0 (*) {'user': 'test'} (glob)
+  95de7fc6918dea4c9c8d5382f50649794b474c4a 909a0fb57e5d909f353d89e394ffd7e0890fec88 0 (*) {'user': 'test'} (glob)
+  a7a6f2b5d8a54b81bc7aa2fba2934ad6d700a79e 95de7fc6918dea4c9c8d5382f50649794b474c4a 0 (*) {'user': 'test'} (glob)
 
--- a/tests/test-prune.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-prune.t	Fri Jun 16 11:32:21 2017 +0200
@@ -57,7 +57,7 @@
   $ hg bookmark
    * BABAR                     3:47d2a3944de8
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
 
 prune leaving instability behind
 
@@ -66,8 +66,8 @@
   2 new unstable changesets
   $ hg book -i BABAR
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 pruning multiple changeset at once
 
@@ -78,10 +78,10 @@
   [ ui.status|working directory now at [evolve.node|1f0dee641bb7]]
   [ ui.status|2 changesets pruned]
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 cannot prune public changesets
 
@@ -90,10 +90,10 @@
   (see 'hg help phases' for details)
   [255]
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Check successors addition
 ----------------------------
@@ -139,11 +139,11 @@
   working directory now at 6e8148413dd5
   1 changesets pruned
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
-  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
+  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg log -G
   @  12:6e8148413dd5[] (draft) add nE
   |
@@ -170,12 +170,12 @@
   $ hg prune 'desc("add dd")' -s 'desc("add nD")' -s 'desc("add nC")' --split
   1 changesets pruned
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
-  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
-  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
+  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg log -G
   @  12:6e8148413dd5[] (draft) add nE
   |
@@ -199,12 +199,12 @@
   (use --biject to mark a series as a replacement for another)
   [255]
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
-  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
-  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
+  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 two old, one new:
 
@@ -214,14 +214,14 @@
   $ hg prune 'desc("add cc")' 'desc("add bb")' -s 'desc("add nB")' --fold
   2 changesets pruned
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
-  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
-  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob)
-  814c38b95e72dfe2cbf675b1649ea9d780c89a80 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'user': 'test'} (glob)
-  354011cd103f58bbbd9091a3cee6d6a6bd0dddf7 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
+  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  814c38b95e72dfe2cbf675b1649ea9d780c89a80 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  354011cd103f58bbbd9091a3cee6d6a6bd0dddf7 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 two old, two new with --biject
 
@@ -236,16 +236,16 @@
   working directory now at 1f0dee641bb7
   2 changesets pruned
   $ hg debugobsolete
-  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
-  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)
-  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'user': 'test'} (glob)
-  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'user': 'test'} (glob)
-  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
-  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob)
-  814c38b95e72dfe2cbf675b1649ea9d780c89a80 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'user': 'test'} (glob)
-  354011cd103f58bbbd9091a3cee6d6a6bd0dddf7 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'user': 'test'} (glob)
-  cb7f8f706a6532967b98cf8583a81baab79a0fa7 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'user': 'test'} (glob)
-  21b6f2f1cece8c10326e575dd38239189d467190 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'user': 'test'} (glob)
+  9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'ef1': '*', 'user': 'blah'} (glob)
+  7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'ef1': '*', 'user': 'test'} (glob)
+  4538525df7e2b9f09423636c61ef63a4cb872a2d 0 {7c3bad9141dcb46ff89abf5f61856facd56e476c} (*) {'ef1': '*', 'user': 'test'} (glob)
+  47d2a3944de8b013de3be9578e8e344ea2e6c097 0 {4538525df7e2b9f09423636c61ef63a4cb872a2d} (*) {'ef1': '*', 'user': 'test'} (glob)
+  bb5e90a7ea1f3b4b38b23150a4a597b6146d70ef 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  00ded550b1e28bba454bd34cec1269d22cf3ef25 aa96dc3f04c2c2341fe6880aeb6dc9fbffff9ef9 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  814c38b95e72dfe2cbf675b1649ea9d780c89a80 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  354011cd103f58bbbd9091a3cee6d6a6bd0dddf7 6f6f25e4f748d8f7571777e6e168aedf50350ce8 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  cb7f8f706a6532967b98cf8583a81baab79a0fa7 8ee176ff1d4b2034ce51e3efc579c2de346b631d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  21b6f2f1cece8c10326e575dd38239189d467190 6e8148413dd541855b72a920a90c06fca127c7e7 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 test hg strip replacement
 
@@ -353,13 +353,14 @@
                 2 successors:         0
       more than 2 successors:         0
       available  keys:
+                  ef1:                7
                  user:                7
   marker size:
       format v1:
-          smallest length:           69
-          longer length:             69
-          median length:             69
-          mean length:               69
+          smallest length:           75
+          longer length:             75
+          median length:             75
+          mean length:               75
       format v0:
           smallest length:          * (glob)
           longer length:            * (glob)
--- a/tests/test-split.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-split.t	Fri Jun 16 11:32:21 2017 +0200
@@ -38,8 +38,8 @@
   $ echo "change to a" >> _a
   $ hg amend
   $ hg debugobsolete
-  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'user': 'test'} (glob)
-  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'user': 'test'} (glob)
+  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 To create commits with the number of split
   $ echo 0 > num
@@ -91,9 +91,9 @@
   no more change to split
 
   $ hg debugobsolete
-  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'user': 'test'} (glob)
-  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'user': 'test'} (glob)
-  aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'user': 'test'} (glob)
+  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg glog
   @  changeset:   7:5410a2352fa3
   |  tag:         tip
@@ -127,7 +127,7 @@
   $ hg up "desc(_c)"
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ echo "_cd" > _c
-  $ hg split 
+  $ hg split
   abort: uncommitted changes
   [255]
 
@@ -198,14 +198,14 @@
 remaining changes
 
   $ hg debugobsolete
-  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'user': 'test'} (glob)
-  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'user': 'test'} (glob)
-  aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'user': 'test'} (glob)
-  10200229058723ce8d67f6612c1f6b4f73b1fe73 719157b217acc43d397369a448824ed4c7a302f2 0 (*) {'user': 'test'} (glob)
-  5d0c8b0f2d3e5e1ff95f93d7da2ba06650605ab5 0 {10200229058723ce8d67f6612c1f6b4f73b1fe73} (*) {'user': 'test'} (glob)
-  a98b35e86cae589b61892127c5ec1c868e41d910 286887947725085e03455d79649197feaef1eb9d 0 (*) {'user': 'test'} (glob)
-  5410a2352fa3114883327beee89e3085eefac25c 0b67cee46a7f2ad664f994027e7af95b36ae25fe 0 (*) {'user': 'test'} (glob)
-  719157b217acc43d397369a448824ed4c7a302f2 ced8fbcce3a7cd33f0e454d2cd63882ce1b6006b 73309fb98db840ba4ec5ad528346dc6ee0b39dcb 0 (*) {'user': 'test'} (glob)
+  9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob)
+  aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  10200229058723ce8d67f6612c1f6b4f73b1fe73 719157b217acc43d397369a448824ed4c7a302f2 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5d0c8b0f2d3e5e1ff95f93d7da2ba06650605ab5 0 {10200229058723ce8d67f6612c1f6b4f73b1fe73} (*) {'ef1': '*', 'user': 'test'} (glob)
+  a98b35e86cae589b61892127c5ec1c868e41d910 286887947725085e03455d79649197feaef1eb9d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5410a2352fa3114883327beee89e3085eefac25c 0b67cee46a7f2ad664f994027e7af95b36ae25fe 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  719157b217acc43d397369a448824ed4c7a302f2 ced8fbcce3a7cd33f0e454d2cd63882ce1b6006b 73309fb98db840ba4ec5ad528346dc6ee0b39dcb 0 (*) {'ef1': '*', 'user': 'test'} (glob)
   $ hg evolve --all
   move:[10] split1
   atop:[13] split4
--- a/tests/test-stabilize-order.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-stabilize-order.t	Fri Jun 16 11:32:21 2017 +0200
@@ -111,10 +111,10 @@
   --- successors.old* (glob)
   +++ successors.new* (glob)
   @@ -3,3 +3,4 @@
-   93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (*) {'user': 'test'} (glob)
-   7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {93418d2c0979643ad446f621195e78720edb05b4} (*) {'user': 'test'} (glob)
-   22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'user': 'test'} (glob)
-  +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'user': 'test'} (glob)
+   93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+   7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {93418d2c0979643ad446f621195e78720edb05b4} (*) {'ef1': '*', 'user': 'test'} (glob)
+   22619daeed78036f80fbd326b6852519c4f0c25e 81b8bbcd5892841efed41433d7a5e9df922396cb 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 0f691739f91762462bf8ba21f35fdf71fe64310e 0 (*) {'ef1': '*', 'user': 'test'} (glob)
   [1]
 
 
--- a/tests/test-stabilize-result.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-stabilize-result.t	Fri Jun 16 11:32:21 2017 +0200
@@ -53,9 +53,9 @@
   o  0:07f494440405@default(draft) bk:[] adda
   
   $ hg debugobsolete
-  102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (*) {'user': 'test'} (glob)
-  c5727dbded3c3a6877cf60d6bb552a76812cb844 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'user': 'test'} (glob)
-  cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'user': 'test'} (glob)
+  102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  c5727dbded3c3a6877cf60d6bb552a76812cb844 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'ef1': '*', 'user': 'test'} (glob)
+  cce2c55b896511e0b6e04173c9450ba822ebc740 0 {102a90ea7b4a3361e4082ed620918c261189a36a} (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Test evolve with conflict
 
--- a/tests/test-uncommit.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-uncommit.t	Fri Jun 16 11:32:21 2017 +0200
@@ -232,7 +232,7 @@
      touncommit-bm-inactive    4:e8db4aa611f6
      unrelated                 2:f63b90038565
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Test phase is preserved, no local changes
 
@@ -278,8 +278,8 @@
   o  0:07f494440405@default(draft) adda
   
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'user': 'test'} (glob)
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Test --all
 
@@ -312,9 +312,9 @@
   A e
 
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'user': 'test'} (glob)
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'user': 'test'} (glob)
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (*) {'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Display a warning if nothing left
 
@@ -322,10 +322,10 @@
   new changeset is empty
   (use 'hg prune .' to remove it)
   $ hg debugobsolete
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'user': 'test'} (glob)
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'user': 'test'} (glob)
-  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (*) {'user': 'test'} (glob)
-  c4cbebac3751269bdf12d1466deabcc78521d272 4f1c269eab68720f54e88ce3c1dc02b2858b6b89 0 (*) {'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 e8db4aa611f6d5706374288e6898e498f5c44098 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 a1d4c1ad76cc7eb5e8a36ef52396da334b6d59c5 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  5eb72dbe0cb409d094e3b4ae8eaa30071c1b8730 c4cbebac3751269bdf12d1466deabcc78521d272 0 (*) {'ef1': '*', 'user': 'test'} (glob)
+  c4cbebac3751269bdf12d1466deabcc78521d272 4f1c269eab68720f54e88ce3c1dc02b2858b6b89 0 (*) {'ef1': '*', 'user': 'test'} (glob)
 
 Test instability warning
 
--- a/tests/test-wireproto.t	Wed May 31 22:15:34 2017 +0200
+++ b/tests/test-wireproto.t	Fri Jun 16 11:32:21 2017 +0200
@@ -72,7 +72,7 @@
   remote: adding manifests
   remote: adding file changes
   remote: added 1 changesets with 1 changes to 1 files (+1 heads)
-  remote: obsmarker-exchange: 139 bytes received
+  remote: obsmarker-exchange: 151 bytes received
   remote: 2 new obsolescence markers
   $ hg push
   pushing to ssh://user@dummy/server
@@ -90,7 +90,7 @@
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re)
-  obsmarker-exchange: 139 bytes received
+  obsmarker-exchange: 151 bytes received
   2 new obsolescence markers
   (run 'hg heads' to see heads)
   $ hg -R ../other pull
@@ -113,7 +113,7 @@
   remote: adding manifests
   remote: adding file changes
   remote: added 1 changesets with 1 changes to 1 files
-  remote: obsmarker-exchange: 139 bytes received
+  remote: obsmarker-exchange: 151 bytes received
   remote: 2 new obsolescence markers
   $ hg -R ../other pull
   pulling from ssh://user@dummy/server
@@ -122,7 +122,7 @@
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files
-  obsmarker-exchange: 139 bytes received
+  obsmarker-exchange: 151 bytes received
   2 new obsolescence markers
   (run 'hg update' to get a working copy)
 
@@ -136,7 +136,7 @@
   remote: adding manifests
   remote: adding file changes
   remote: added 1 changesets with 0 changes to 1 files (+1 heads)
-  remote: obsmarker-exchange: 208 bytes received
+  remote: obsmarker-exchange: 227 bytes received
   remote: 1 new obsolescence markers
   $ hg -R ../other pull
   pulling from ssh://user@dummy/server
@@ -145,7 +145,7 @@
   adding manifests
   adding file changes
   added 1 changesets with 0 changes to 1 files (+1 heads)
-  obsmarker-exchange: 208 bytes received
+  obsmarker-exchange: 227 bytes received
   1 new obsolescence markers
   (run 'hg heads' to see heads)
 
@@ -169,7 +169,7 @@
   (skipping discovery of obsolescence markers, will exchange everything)
   (controled by 'experimental.evolution.obsdiscovery' configuration)
   no changes found
-  remote: obsmarker-exchange: 346 bytes received
+  remote: obsmarker-exchange: 377 bytes received
   [1]
   $ hg -R ../other pull --config experimental.evolution.obsdiscovery=no
   pulling from ssh://user@dummy/server
@@ -177,6 +177,6 @@
   no changes found
   (skipping discovery of obsolescence markers, will exchange everything)
   (controled by 'experimental.evolution.obsdiscovery' configuration)
-  obsmarker-exchange: 346 bytes received
+  obsmarker-exchange: 377 bytes received
 
   $ cd ..
--- a/tests/testlib/exchange-obsmarker-util.sh	Wed May 31 22:15:34 2017 +0200
+++ b/tests/testlib/exchange-obsmarker-util.sh	Fri Jun 16 11:32:21 2017 +0200
@@ -20,6 +20,7 @@
 bundle2-output-capture=True
 # enable evolution
 evolution=all
+evolution.effect-flags = yes
 
 [extensions]
 # we need to strip some changeset for some test cases