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

Augie Fackler raf at durin42.com
Thu Mar 20 09:39:46 CDT 2014


On Wed, Mar 19, 2014 at 04:19:43PM -0500, 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 91f1f09d3b72055e65b23d3f354e2a27f88b8b06
> # Parent  d666da075b912b7bae3c602842caed0e09b7235d
> repoview: add non-global tags to candidate list for blocking hidden changesets
>

I dither a little about this behavior wise, but the fact that I'm +0
and marmoute likes it means I'm going to queue it.

>
> 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,13 @@ 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 = [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()
>
>  def computeunserved(repo):
> diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
> --- a/tests/test-obsolete.t
> +++ b/tests/test-obsolete.t
> @@ -882,6 +882,22 @@ This test issue 3814
>    comparing with ../repo-issue3814
>    searching for changes
>    no changes found
>    [1]
>
> +Test that a local tag blocks a changeset from being hidden
>
> +  $ hg tag -l visible -r 0 --hidden
> +  $ hg log -G
> +  @  changeset:   2:3816541e5485
> +     tag:         tip
> +     parent:      -1:000000000000
> +     user:        test
> +     date:        Thu Jan 01 00:00:00 1970 +0000
> +     summary:     A
> +
> +  x  changeset:   0:193e9254ce7e
> +     tag:         visible
> +     user:        test
> +     date:        Thu Jan 01 00:00:00 1970 +0000
> +     summary:     A
> +
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list