[PATCH V2] revset: omit dropping tip from the result of tag() (BC)

Augie Fackler raf at durin42.com
Wed Feb 4 15:04:15 CST 2015


On Wed, Feb 4, 2015 at 2:05 AM, FUJIWARA Katsunori
<foozy at lares.dti.ne.jp> wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1423033325 -32400
> #      Wed Feb 04 16:02:05 2015 +0900
> # Node ID be0452c3be1b5f4bb9b425049a36f81238873fc2
> # Parent  e1dbe0b215ae137eec53ceb12440536d570a83d2
> revset: omit dropping tip from the result of tag() (BC)

I don't know how mpm feels, but I feel like this is going the wrong
way. More things should omit tip, rather than show it.

>
> Before this patch, revset predicate "tag()" and "named('tags')" differ
> from each other, because the former doesn't include "tip" but the
> latter does.
>
> For equivalence between "hg tags", "tag()" and "named('tags')", this
> patch omits dropping "tip" from the result of "tags" predicate, when
> no pattern is specified to it.
>
> This patch chooses this policy for simplicity, even though this may
> break backward compatibility for existing tools, which expect that
> "tip" isn't listed up in the result of "tag()".
>
> diff --git a/mercurial/revset.py b/mercurial/revset.py
> --- a/mercurial/revset.py
> +++ b/mercurial/revset.py
> @@ -1824,7 +1824,7 @@ def tag(repo, subset, x):
>          else:
>              s = set([cl.rev(n) for t, n in repo.tagslist() if matcher(t)])
>      else:
> -        s = set([cl.rev(n) for t, n in repo.tagslist() if t != 'tip'])
> +        s = set([cl.rev(n) for t, n in repo.tagslist()])
>      return subset & s
>
>  def tagged(repo, subset, x):
> diff --git a/tests/test-revset-dirstate-parents.t b/tests/test-revset-dirstate-parents.t
> --- a/tests/test-revset-dirstate-parents.t
> +++ b/tests/test-revset-dirstate-parents.t
> @@ -33,13 +33,20 @@ null revision
>  working dir with a single parent
>    $ echo a > a
>    $ hg ci -Aqm0
> +  $ log 'tag()'
> +  0
> +  $ log 'tip'
> +  0
>    $ log 'p1()'
>    0
>    $ log 'tag() and p1()'
> +  0
>    $ log 'p2()'
>    $ log 'parents()'
>    0
>    $ log 'tag() and parents()'
> +  0
> +  $ log 'tag() and p2()'
>
>  merge in progress
>    $ echo b > b
> diff --git a/tests/test-revset.t b/tests/test-revset.t
> --- a/tests/test-revset.t
> +++ b/tests/test-revset.t
> @@ -544,8 +544,10 @@ Test null revision
>    4
>    $ log 'tagged()'
>    6
> +  9
>    $ log 'tag()'
>    6
> +  9
>    $ log 'tag(1.0)'
>    6
>    $ log 'tag(tip)'
> @@ -789,6 +791,7 @@ we can use patterns when searching for t
>
>    $ log 'tag()'
>    6
> +  9
>    $ log 'named("tags")'
>    6
>    9
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list