Mercurial > hg
view tests/test-diff-reverse.t @ 24320:b9f7f3eeb99c
localrepo: extend "changeid in repo" to return True for workingctx revision
This is necessary to implement "wc" symbol for workingctx, that will be used
as follows:
$ hg annotate -r wc FILE
In principle, "rev in repo" should be True if "repo[rev]" can return a context
object. But when it was implemented by ea3acaae25bb, lookup() had a long logic
to map all sorts of changeids to nodes, and "None in repo" did crash because
lookup() could not accept None. So I assume that the case of changeid=None was
not considered.
Now "None in repo" doesn't crash, it should be True for workingctx revision.
Behavior of "changeid in repo":
revision "null" existing rev None (workingctx)
---------- ------ ------------ -----------------
original* True True TypeError
current True True False
this patch True True True
(*original: ea3acaae25bb)
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 17 Aug 2014 11:35:31 +0900 |
parents | c586cb50872b |
children | 55c6ebd11cb9 |
line wrap: on
line source
$ hg init $ cat > a <<EOF > a > b > c > EOF $ hg ci -Am adda adding a $ cat > a <<EOF > d > e > f > EOF $ hg ci -m moda $ hg diff --reverse -r0 -r1 diff -r 2855cdcfcbb7 -r 8e1805a3cf6e a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +1,3 @@ -d -e -f +a +b +c $ cat >> a <<EOF > g > h > EOF $ hg diff --reverse --nodates diff -r 2855cdcfcbb7 a --- a/a +++ b/a @@ -1,5 +1,3 @@ d e f -g -h should show removed file 'a' as being added $ hg revert a $ hg rm a $ hg diff --reverse --nodates a diff -r 2855cdcfcbb7 a --- /dev/null +++ b/a @@ -0,0 +1,3 @@ +d +e +f should show added file 'b' as being removed $ echo b >> b $ hg add b $ hg diff --reverse --nodates b diff -r 2855cdcfcbb7 b --- a/b +++ /dev/null @@ -1,1 +0,0 @@ -b