@@ -84,7 +84,7 @@
$ cat <<EOF >>a
> a
- > a
+ > a3
> EOF
$ hg ci -ma1 -d '1 0'
$ hg cp a b
@@ -101,7 +101,7 @@
$ hg annotate -n b
0: a
1: a
- 1: a
+ 1: a3
3: b4
3: b5
3: b6
@@ -111,7 +111,7 @@
$ hg annotate --no-follow b
2: a
2: a
- 2: a
+ 2: a3
3: b4
3: b5
3: b6
@@ -121,7 +121,7 @@
$ hg annotate -nl b
0:1: a
1:2: a
- 1:3: a
+ 1:3: a3
3:4: b4
3:5: b5
3:6: b6
@@ -131,7 +131,7 @@
$ hg annotate -nf b
0 a: a
1 a: a
- 1 a: a
+ 1 a: a3
3 b: b4
3 b: b5
3 b: b6
@@ -141,7 +141,7 @@
$ hg annotate -nlf b
0 a:1: a
1 a:2: a
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
3 b:5: b5
3 b:6: b6
@@ -164,21 +164,21 @@
$ cat b
a
a
- a
- <<<<<<< working copy: 5fbdc1152d97 - test: b2.1
+ a3
+ <<<<<<< working copy: 5b11d30c501c - test: b2.1
b4
c
b5
||||||| base
=======
b4
b5
b6
- >>>>>>> merge rev: 37ec9f5c3d1f - test: b2
+ >>>>>>> merge rev: 00283b69e93a - test: b2
$ cat <<EOF > b
> a
> a
- > a
+ > a3
> b4
> c
> b5
@@ -195,7 +195,7 @@
fastannotate: b: 5 new changesets in the main branch
0 a: a
1 a: a
- 1 a: a
+ 1 a: a3
3 b: b4
4 b: c
3 b: b5
@@ -206,40 +206,40 @@
fastannotate: b: using fast path (resolved fctx: False)
0 a: a
1 a: a
- 1 a: a
+ 1 a: a3
4 b: b4
4 b: c
4 b: b5
annotate after merge with -l
(fastannotate differs from annotate)
$ hg log -Gp -T '{rev}:{node}' -r '2..5'
- @ 5:64afcdf8e29e063c635be123d8d2fb160af00f7e
+ @ 5:90287468742e2e0246cb6367db2041531ce70103
|\
- | o 4:5fbdc1152d97597717021ad9e063061b200f146bdiff --git a/b b/b
+ | o 4:5b11d30c501ca9f279ad7fbe6bd6cfb24914ee59diff --git a/b b/b
| | --- a/b
| | +++ b/b
| | @@ -1,3 +1,6 @@
| | a
| | a
- | | a
+ | | a3
| | +b4
| | +c
| | +b5
| |
- o | 3:37ec9f5c3d1f99572d7075971cb4876e2139b52fdiff --git a/b b/b
+ o | 3:00283b69e93aa814ca9b86460c411015405fb19adiff --git a/b b/b
|/ --- a/b
| +++ b/b
| @@ -1,3 +1,6 @@
| a
| a
- | a
+ | a3
| +b4
| +b5
| +b6
|
- o 2:3086dbafde1ce745abfc8d2d367847280aabae9ddiff --git a/a b/b
+ o 2:6ad008faa136fdf083e91083a4aa4e6e18b5e8c4diff --git a/a b/b
| copy from a
~ copy to b
@@ -250,15 +250,15 @@
$ hg annotate -nlf b --config fastannotate.modes=
0 a:1: a
1 a:2: a
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
$ hg annotate -nlf b
0 a:1: a
1 a:2: a
- 1 a:3: a
+ 1 a:3: a3
4 b:4: b4
4 b:5: c
4 b:6: b5
@@ -269,7 +269,7 @@
$ cat <<EOF > b
> a
> z
- > a
+ > a3
> EOF
$ hg ci -mc -d '3 0'
created new head
@@ -285,7 +285,7 @@
$ hg annotate -nf b
0 a: a
6 b: z
- 1 a: a
+ 1 a: a3
3 b: b4
4 b: c
3 b: b5
@@ -295,37 +295,38 @@
(fastannotate differs from annotate)
$ hg log -Gp -T '{rev}:{node}' -r '0+1+6+7'
- @ 7:6284bb6c38fef984a929862a53bbc71ce9eafa81diff --git a/b b/b
+ @ 7:8868d0fca4d2d22079990f4a772d0af2664d35fediff --git a/b b/b
|\ --- a/b
| : +++ b/b
| : @@ -1,3 +1,7 @@
| : a
| : z
- | : a
+ | : a3
| : +b4
| : +c
| : +b5
| : +d
| :
- o : 6:b80e3e32f75a6a67cd4ac85496a11511e9112816diff --git a/a b/b
+ o : 6:189fc23b8ce7bbf4dc1bba9e52c4bfdb38922ad9diff --git a/a b/b
:/ copy from a
: copy to b
: --- a/a
: +++ b/b
: @@ -1,3 +1,3 @@
: -a (?)
: a
+ : -a
: +z
- : a
: -a (?)
+ : a3
:
- o 1:762f04898e6684ff713415f7b8a8d53d33f96c92diff --git a/a b/a
+ o 1:151465fa4cb9d404da352ad0bdef38aa2020dc37diff --git a/a b/a
| --- a/a
| +++ b/a
| @@ -1,1 +1,3 @@
| a
| +a
- | +a
+ | +a3
|
o 0:8435f90966e442695d2ded29fdade2bac5ad8065diff --git a/a b/a
new file mode 100644
@@ -358,7 +359,7 @@
$ hg annotate -nlf b --config fastannotate.modes=
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -370,6 +371,7 @@
6 b:2: z
1 a:2: a (?)
1 a:3: a (?)
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -390,6 +392,7 @@
6 b: 2: z
1 a: 2: a (?)
1 a: 3: a (?)
+ 1 a: 3: a3
3 b: 4: b4
4 b: 5: c
3 b: 5: b5
@@ -403,14 +406,14 @@
$ hg annotate -r tip -n a
0: a
1: a
- 1: a
+ 1: a3
linkrev vs rev with -l
$ hg annotate -r tip -nl a
0:1: a
1:2: a
- 1:3: a
+ 1:3: a3
Issue589: "undelete" sequence leads to crash
@@ -436,7 +439,7 @@
missing file
$ hg ann nosuchfile
- abort: nosuchfile: no such file in rev e9e6b4fa872f
+ abort: nosuchfile: no such file in rev 4bb0cf7b70e4
[255]
annotate file without '\n' on last line
@@ -562,7 +565,7 @@
annotate clean file
$ hg annotate -ncr "wdir()" foo
- 11 472b18db256d : foo
+ 11 d52714cca963 : foo
annotate modified file
@@ -572,25 +575,25 @@
20+: foofoo
$ hg annotate -cr "wdir()" foo
- 472b18db256d : foo
- b6bedd5477e7+: foofoo
+ d52714cca963 : foo
+ 3435b4560d2c+: foofoo
$ hg annotate -ncr "wdir()" foo
- 11 472b18db256d : foo
- 20 b6bedd5477e7+: foofoo
+ 11 d52714cca963 : foo
+ 20 3435b4560d2c+: foofoo
$ hg annotate --debug -ncr "wdir()" foo
- 11 472b18db256d1e8282064eab4bfdaf48cbfe83cd : foo
- 20 b6bedd5477e797f25e568a6402d4697f3f895a72+: foofoo
+ 11 d52714cca963b6bb9b945743d1fbee072d1f3bd9 : foo
+ 20 3435b4560d2cf6aa2bb09bcb5aa12ac15d8ba9ef+: foofoo
$ hg annotate -udr "wdir()" foo
test Thu Jan 01 00:00:00 1970 +0000: foo
test [A-Za-z0-9:+ ]+: foofoo (re)
$ hg annotate -ncr "wdir()" -Tjson foo
[
{
- "lines": [{"line": "foo\n", "node": "472b18db256d1e8282064eab4bfdaf48cbfe83cd", "rev": 11}, {"line": "foofoo\n", "node": "ffffffffffffffffffffffffffffffffffffffff", "rev": 2147483647}],
+ "lines": [{"line": "foo\n", "node": "d52714cca963b6bb9b945743d1fbee072d1f3bd9", "rev": 11}, {"line": "foofoo\n", "node": "ffffffffffffffffffffffffffffffffffffffff", "rev": 2147483647}],
"path": "foo"
}
]
@@ -600,14 +603,14 @@
$ echo bar > bar
$ hg add bar
$ hg annotate -ncr "wdir()" bar
- 20 b6bedd5477e7+: bar
+ 20 3435b4560d2c+: bar
annotate renamed file
$ hg rename foo renamefoo2
$ hg annotate -ncr "wdir()" renamefoo2
- 11 472b18db256d : foo
- 20 b6bedd5477e7+: foofoo
+ 11 d52714cca963 : foo
+ 20 3435b4560d2c+: foofoo
annotate missing file
@@ -87,7 +87,7 @@
$ cat <<EOF >>a
> a
- > a
+ > a3
> EOF
$ hg ci -ma1 -d '1 0'
$ hg cp a b
@@ -104,35 +104,35 @@
$ hg annotate -T'{lines}' a
0: a
1: a
- 1: a
+ 1: a3
$ hg annotate -T'{join(lines, "\n")}' a
0: a
1: a
- 1: a
+ 1: a3
several filters can be applied to '{lines}'
$ hg annotate -T'{lines|json}\n' a
- [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a\n", "rev": 1}]
+ [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a3\n", "rev": 1}]
$ hg annotate -T'{lines|stringify}' a
0: a
1: a
- 1: a
+ 1: a3
$ hg annotate -T'{lines|count}\n' a
3
annotate multiple files (JSON)
$ hg annotate -Tjson a b
[
{
- "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a\n", "rev": 1}],
+ "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a3\n", "rev": 1}],
"path": "a"
},
{
- "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a\n", "rev": 1}, {"line": "b4\n", "rev": 3}, {"line": "b5\n", "rev": 3}, {"line": "b6\n", "rev": 3}],
+ "lines": [{"line": "a\n", "rev": 0}, {"line": "a\n", "rev": 1}, {"line": "a3\n", "rev": 1}, {"line": "b4\n", "rev": 3}, {"line": "b5\n", "rev": 3}, {"line": "b6\n", "rev": 3}],
"path": "b"
}
]
@@ -143,11 +143,11 @@
== a ==
0: a
1: a
- 1: a
+ 1: a3
== b ==
0: a
1: a
- 1: a
+ 1: a3
3: b4
3: b5
3: b6
@@ -157,7 +157,7 @@
$ hg annotate -n b
0: a
1: a
- 1: a
+ 1: a3
3: b4
3: b5
3: b6
@@ -167,7 +167,7 @@
$ hg annotate --no-follow b
2: a
2: a
- 2: a
+ 2: a3
3: b4
3: b5
3: b6
@@ -177,7 +177,7 @@
$ hg annotate -nl b
0:1: a
1:2: a
- 1:3: a
+ 1:3: a3
3:4: b4
3:5: b5
3:6: b6
@@ -187,7 +187,7 @@
$ hg annotate -nf b
0 a: a
1 a: a
- 1 a: a
+ 1 a: a3
3 b: b4
3 b: b5
3 b: b6
@@ -197,7 +197,7 @@
$ hg annotate -nlf b
0 a:1: a
1 a:2: a
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
3 b:5: b5
3 b:6: b6
@@ -220,21 +220,21 @@
$ cat b
a
a
- a
- <<<<<<< working copy: 5fbdc1152d97 - test: b2.1
+ a3
+ <<<<<<< working copy: 5b11d30c501c - test: b2.1
b4
c
b5
||||||| base
=======
b4
b5
b6
- >>>>>>> merge rev: 37ec9f5c3d1f - test: b2
+ >>>>>>> merge rev: 00283b69e93a - test: b2
$ cat <<EOF > b
> a
> a
- > a
+ > a3
> b4
> c
> b5
@@ -248,7 +248,7 @@
$ hg annotate -nf b
0 a: a
1 a: a
- 1 a: a
+ 1 a: a3
3 b: b4
4 b: c
3 b: b5
@@ -258,7 +258,7 @@
$ hg annotate -nlf b
0 a:1: a
1 a:2: a
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -269,7 +269,7 @@
$ cat <<EOF > b
> a
> z
- > a
+ > a3
> EOF
$ hg ci -mc -d '3 0'
created new head
@@ -285,7 +285,7 @@
$ hg annotate -nf b
0 a: a
6 b: z
- 1 a: a
+ 1 a: a3
3 b: b4
4 b: c
3 b: b5
@@ -296,7 +296,7 @@
$ hg annotate -nlf b
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -307,20 +307,18 @@
$ hg annotate -nlf b --skip '1::0'
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
7 b:7: d
---skip a modified line. Note a slight behavior difference in pure - this is
-because the pure code comes up with slightly different deltas internally.
+--skip a modified line
$ hg annotate -nlf b --skip 6
0 a:1: a
- 1 a:2* z (no-pure !)
- 0 a:1* z (pure !)
- 1 a:3: a
+ 1 a:2* z
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -331,34 +329,34 @@
$ hg annotate -nlf b --skip 3
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
1 a:3* b4
4 b:5: c
1 a:3* b5
7 b:7: d
$ hg annotate -nlf b --skip 4
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
1 a:3* c
3 b:5: b5
7 b:7: d
$ hg annotate -nlf b --skip 3 --skip 4
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
1 a:3* b4
1 a:3* c
1 a:3* b5
7 b:7: d
$ hg annotate -nlf b --skip 'merge()'
0 a:1: a
6 b:2: z
- 1 a:3: a
+ 1 a:3: a3
3 b:4: b4
4 b:5: c
3 b:5: b5
@@ -369,7 +367,7 @@
$ hg annotate -nlf b --skip 'all()'
0 a:1: a
0 a:1* z
- 0 a:1* a
+ 0 a:1* a3
0 a:1* b4
0 a:1* c
0 a:1* b5
@@ -386,7 +384,7 @@
$ hg annotate -nlf b
0 a: 1: a
6 b: 2: z
- 1 a: 3: a
+ 1 a: 3: a3
3 b: 4: b4
4 b: 5: c
3 b: 5: b5
@@ -400,14 +398,14 @@
$ hg annotate -r tip -n a
0: a
1: a
- 1: a
+ 1: a3
linkrev vs rev with -l
$ hg annotate -r tip -nl a
0:1: a
1:2: a
- 1:3: a
+ 1:3: a3
Issue589: "undelete" sequence leads to crash
@@ -433,7 +431,7 @@
missing file
$ hg ann nosuchfile
- abort: nosuchfile: no such file in rev e9e6b4fa872f
+ abort: nosuchfile: no such file in rev 4bb0cf7b70e4
[255]
annotate file without '\n' on last line
@@ -560,7 +558,7 @@
annotate clean file
$ hg annotate -ncr "wdir()" foo
- 11 472b18db256d : foo
+ 11 d52714cca963 : foo
annotate modified file
@@ -570,25 +568,25 @@
20+: foofoo
$ hg annotate -cr "wdir()" foo
- 472b18db256d : foo
- b6bedd5477e7+: foofoo
+ d52714cca963 : foo
+ 3435b4560d2c+: foofoo
$ hg annotate -ncr "wdir()" foo
- 11 472b18db256d : foo
- 20 b6bedd5477e7+: foofoo
+ 11 d52714cca963 : foo
+ 20 3435b4560d2c+: foofoo
$ hg annotate --debug -ncr "wdir()" foo
- 11 472b18db256d1e8282064eab4bfdaf48cbfe83cd : foo
- 20 b6bedd5477e797f25e568a6402d4697f3f895a72+: foofoo
+ 11 d52714cca963b6bb9b945743d1fbee072d1f3bd9 : foo
+ 20 3435b4560d2cf6aa2bb09bcb5aa12ac15d8ba9ef+: foofoo
$ hg annotate -udr "wdir()" foo
test Thu Jan 01 00:00:00 1970 +0000: foo
test [A-Za-z0-9:+ ]+: foofoo (re)
$ hg annotate -ncr "wdir()" -Tjson foo
[
{
- "lines": [{"line": "foo\n", "node": "472b18db256d1e8282064eab4bfdaf48cbfe83cd", "rev": 11}, {"line": "foofoo\n", "node": "ffffffffffffffffffffffffffffffffffffffff", "rev": 2147483647}],
+ "lines": [{"line": "foo\n", "node": "d52714cca963b6bb9b945743d1fbee072d1f3bd9", "rev": 11}, {"line": "foofoo\n", "node": "ffffffffffffffffffffffffffffffffffffffff", "rev": 2147483647}],
"path": "foo"
}
]
@@ -598,14 +596,14 @@
$ echo bar > bar
$ hg add bar
$ hg annotate -ncr "wdir()" bar
- 20 b6bedd5477e7+: bar
+ 20 3435b4560d2c+: bar
annotate renamed file
$ hg rename foo renamefoo2
$ hg annotate -ncr "wdir()" renamefoo2
- 11 472b18db256d : foo
- 20 b6bedd5477e7+: foofoo
+ 11 d52714cca963 : foo
+ 20 3435b4560d2c+: foofoo
annotate missing file
@@ -728,16 +726,16 @@
0
1 baz:1
2 baz:2
- <<<<<<< working copy: 863de62655ef - test: baz:3+->3-
+ <<<<<<< working copy: 947cbfbb62c3 - test: baz:3+->3-
3- baz:3
4 baz:4
||||||| base
3+ baz:3
4 baz:4
=======
3+ baz:3
4+ baz:4
- >>>>>>> merge rev: cb8df70ae185 - test: qux:4->4+
+ >>>>>>> merge rev: e8af2f3d2d91 - test: qux:4->4+
5
6
7
@@ -775,16 +773,16 @@
0
1 baz:1
2 baz:2
- <<<<<<< working copy: cb8df70ae185 - test: qux:4->4+
+ <<<<<<< working copy: e8af2f3d2d91 - test: qux:4->4+
3+ baz:3
4+ baz:4
||||||| base
3+ baz:3
4 baz:4
=======
3- baz:3
4 baz:4
- >>>>>>> merge rev: 863de62655ef - test: baz:3+->3-
+ >>>>>>> merge rev: 947cbfbb62c3 - test: baz:3+->3-
5
6
7
@@ -901,7 +899,7 @@
An integer as a line range, which is parsed as '1:1'
$ hg log -r 'followlines(baz, 1)'
- changeset: 22:2174d0bf352a
+ changeset: 22:43fc27bf31ab
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: added two lines with 0
martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY test-annotate.t and test-fastannotate.hg were failing with --pure since https://phab.mercurial-scm.org/rHG57203e0210f832b34438534770a583de35d0d6c6 (copies: calculate mergecopies() based on pathcopies(), 2019-04-11). It turned out to be because the pure file merge code behaved differently. I'm guessing it's the mdiff.get_matching_blocks() that behaves differently, but I haven't confirmed that. With this content in the base: a a a And this on the local side: a z a And this on the other side: a a a b4 c b6 It produced this conflict: a z a <<<<<<< working copy: b80e3e32f75a - test: c ||||||| base a ======= a b4 c b5 >>>>>>> merge rev: 64afcdf8e29e - test: mergeb I don't care enough about the pure Python code to fix it, so this patch just updates the tests to help the file merge algorithm find the same answer in pure and native code. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6351 AFFECTED FILES tests/test-annotate.t tests/test-fastannotate-hg.t CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-devel