[PATCH 6 of 6] hidden: alert hidden store when obsmarkers are created

Durham Goode durham at fb.com
Thu May 18 14:24:00 EDT 2017


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1495129620 25200
#      Thu May 18 10:47:00 2017 -0700
# Node ID b09fa310c34bdbad4fc2b5b914e84e0fc9dc4b68
# Parent  0979ce9d40803103441b6df1ebefafe80bb9a057
hidden: alert hidden store when obsmarkers are created

This calls the new updatevisibility function from obsolete.createmarkers(). This
let's us update the currently stored hidden information when markers change.

diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -1226,6 +1226,7 @@ def createmarkers(repo, relations, flag=
         metadata['user'] = repo.ui.username()
     tr = repo.transaction('add-obsolescence-marker')
     try:
+        affectednodes = set()
         markerargs = []
         for rel in relations:
             prec = rel[0]
@@ -1258,6 +1259,11 @@ def createmarkers(repo, relations, flag=
             repo.obsstore.create(tr, nprec, nsucs, flag, parents=npare,
                                  date=date, metadata=localmetadata)
             repo.filteredrevcache.clear()
+            affectednodes.add(nprec)
+
+        cl = repo.unfiltered().changelog
+        affectedrevs = (cl.rev(n) for n in affectednodes if n in cl.nodemap)
+        repo.hidden.updatevisibility(affectedrevs)
         tr.close()
     finally:
         tr.release()


More information about the Mercurial-devel mailing list