[PATCH V2] repoview: add non-global tags to candidate list for blocking hidden changesets

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Mar 19 01:06:28 CDT 2014



On 03/18/2014 10:04 PM, Sean Farley wrote:
> # HG changeset patch
> # User Sean Farley <sean.michael.farley at gmail.com>
> # Date 1395191433 18000
> #      Tue Mar 18 20:10:33 2014 -0500
> # Node ID 7290d5a92ebb48e391254554daee2dd6d8212999
> # Parent  efbf15979538a1e32fb70bf89de7c60f8ead5909
> 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).
>
> diff --git a/mercurial/repoview.py b/mercurial/repoview.py
> --- a/mercurial/repoview.py
> +++ b/mercurial/repoview.py
> @@ -33,10 +33,14 @@ def computehidden(repo):
>           blockers = [r for r in tofilter if r not in hideable]
>           for par in repo[None].parents():
>               blockers.append(par.rev())
>           for bm in repo._bookmarks.values():
>               blockers.append(repo[bm].rev())
> +        tags = [t for t in repo.tags()
> +                if (repo.tagtype(t) and repo.tagtype(t) != 'global')]
> +        for t in tags:
> +            blockers.append(repo[t].rev())
>           blocked = cl.ancestors(blockers, inclusive=True)
>           return frozenset(r for r in hideable if r not in blocked)
>       return frozenset()
>
>   def computeunserved(repo):

The code itself looks good. Eager to see the test ;-)

small nit:

   blocked.update(repo[t].rev() for t in tags)

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list