diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1083,6 +1083,7 @@ class localrepository(object): validator=validate, releasefn=releasefn) tr.changes['revs'] = set() + tr.changes['obsmarkers'] = set() tr.hookargs['txnid'] = txnid # note: writing the fncache only during finalize mean that the file is diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -613,6 +613,9 @@ class obsstore(object): # XXX: f.close() == filecache invalidation == obsstore rebuilt. # call 'filecacheentry.refresh()' here f.close() + addedmarkers = transaction.changes.get('obsmarkers') + if addedmarkers is not None: + addedmarkers.update(new) self._addmarkers(new) # new marker *may* have changed several set. invalidate the cache. self.caches.clear()