diff mercurial/repoview.py @ 20807:91d28bd0e04e

repoview: add non-global tags to candidate list for blocking hidden changesets Previously, only bookmarks would be considered for blocking a changeset from being hidden. Now, we also consider non-global tags. This is helpful if we have local tags that might be hard to find once they are hidden, or tag that are added by extensions (e.g. hggit or remotebranches).
author Sean Farley <sean.michael.farley@gmail.com>
date Tue, 18 Mar 2014 20:10:33 -0500
parents 2025315cfb0c
children 388af5d4e90c
line wrap: on
line diff
--- a/mercurial/repoview.py	Thu Mar 13 16:05:06 2014 -0700
+++ b/mercurial/repoview.py	Tue Mar 18 20:10:33 2014 -0500
@@ -35,6 +35,9 @@
             blockers.append(par.rev())
         for bm in repo._bookmarks.values():
             blockers.append(repo[bm].rev())
+        tags = [n for t, n in repo.tags().iteritems()
+                if (repo.tagtype(t) and repo.tagtype(t) != 'global')]
+        blockers.extend(repo[t].rev() for t in tags)
         blocked = cl.ancestors(blockers, inclusive=True)
         return frozenset(r for r in hideable if r not in blocked)
     return frozenset()