2019-12-10 02:24:31 +03:00
|
|
|
#chg-compatible
|
|
|
|
|
2017-09-03 00:04:01 +03:00
|
|
|
Test for the full copytracing algorithm
|
|
|
|
=======================================
|
|
|
|
|
2011-04-19 14:04:44 +04:00
|
|
|
$ hg init t
|
2010-08-18 02:56:20 +04:00
|
|
|
$ cd t
|
|
|
|
|
|
|
|
$ echo 1 > a
|
2010-09-03 01:22:51 +04:00
|
|
|
$ hg ci -qAm "first"
|
2010-08-18 02:56:20 +04:00
|
|
|
|
|
|
|
$ hg cp a b
|
|
|
|
$ hg mv a c
|
|
|
|
$ echo 2 >> b
|
|
|
|
$ echo 2 >> c
|
|
|
|
|
2010-09-03 01:22:51 +04:00
|
|
|
$ hg ci -qAm "second"
|
2010-08-18 02:56:20 +04:00
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg co -C 'desc(first)'
|
2010-08-18 02:56:20 +04:00
|
|
|
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
|
|
|
|
|
|
$ echo 0 > a
|
|
|
|
$ echo 1 >> a
|
|
|
|
|
2010-09-03 01:22:51 +04:00
|
|
|
$ hg ci -qAm "other"
|
2010-08-18 02:56:20 +04:00
|
|
|
|
|
|
|
$ hg merge --debug
|
|
|
|
searching for copies back to rev 1
|
|
|
|
unmatched files in other:
|
|
|
|
b
|
|
|
|
c
|
2012-05-23 23:34:29 +04:00
|
|
|
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
|
2012-12-27 03:03:58 +04:00
|
|
|
src: 'a' -> dst: 'b' *
|
2012-12-12 05:38:14 +04:00
|
|
|
src: 'a' -> dst: 'c' *
|
2010-08-18 02:56:20 +04:00
|
|
|
checking for directory renames
|
|
|
|
resolving manifests
|
2013-02-08 19:23:23 +04:00
|
|
|
branchmerge: True, force: False, partial: False
|
2011-12-09 20:34:53 +04:00
|
|
|
ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6
|
2014-04-22 04:10:25 +04:00
|
|
|
preserving a for resolve of b
|
|
|
|
preserving a for resolve of c
|
2010-08-18 02:56:20 +04:00
|
|
|
removing a
|
2015-10-12 07:56:39 +03:00
|
|
|
b: remote moved from a -> m (premerge)
|
2015-11-26 01:25:26 +03:00
|
|
|
picked tool ':merge' for b (binary False symlink False changedelete False)
|
2010-08-18 02:56:20 +04:00
|
|
|
merging a and b to b
|
2010-09-03 01:22:51 +04:00
|
|
|
my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc
|
2010-08-18 02:56:20 +04:00
|
|
|
premerge successful
|
2015-10-12 07:56:39 +03:00
|
|
|
c: remote moved from a -> m (premerge)
|
2015-11-26 01:25:26 +03:00
|
|
|
picked tool ':merge' for c (binary False symlink False changedelete False)
|
2010-08-18 02:56:20 +04:00
|
|
|
merging a and c to c
|
2010-09-03 01:22:51 +04:00
|
|
|
my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc
|
2010-08-18 02:56:20 +04:00
|
|
|
premerge successful
|
|
|
|
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
|
|
|
|
(branch merge, don't forget to commit)
|
|
|
|
|
|
|
|
file b
|
|
|
|
$ cat b
|
|
|
|
0
|
|
|
|
1
|
|
|
|
2
|
|
|
|
|
|
|
|
file c
|
|
|
|
$ cat c
|
|
|
|
0
|
|
|
|
1
|
|
|
|
2
|
2012-06-11 03:40:51 +04:00
|
|
|
|
2015-01-27 22:26:27 +03:00
|
|
|
Test disabling copy tracing
|
|
|
|
|
|
|
|
- first verify copy metadata was kept
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg up -qC 'desc(other)'
|
|
|
|
$ hg rebase --keep -d 'desc(second)' -b 'desc(other)' --config extensions.rebase=
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing add3f11052fa "other"
|
2015-01-27 22:26:27 +03:00
|
|
|
merging b and a to b
|
|
|
|
merging c and a to c
|
|
|
|
|
|
|
|
$ cat b
|
|
|
|
0
|
|
|
|
1
|
|
|
|
2
|
|
|
|
|
|
|
|
- next verify copy metadata is lost when disabled
|
|
|
|
|
2019-02-25 14:50:46 +03:00
|
|
|
$ hg debugstrip -r .
|
2015-01-27 22:26:27 +03:00
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg up -qC 'desc(other)'
|
|
|
|
$ hg rebase --keep -d 'desc(second)' -b 'desc(other)' --config extensions.rebase= --config experimental.copytrace=off --config ui.interactive=True << EOF
|
2015-12-23 23:41:20 +03:00
|
|
|
> c
|
|
|
|
> EOF
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing add3f11052fa "other"
|
2016-08-12 15:56:40 +03:00
|
|
|
other [source] changed a which local [dest] deleted
|
2019-09-19 06:39:33 +03:00
|
|
|
use (c)hanged version, leave (d)eleted, leave (u)nresolved, or input (r)enamed path? c
|
2015-01-27 22:26:27 +03:00
|
|
|
|
|
|
|
$ cat b
|
|
|
|
1
|
|
|
|
2
|
|
|
|
|
2012-06-11 03:40:51 +04:00
|
|
|
$ cd ..
|
2015-01-27 22:26:27 +03:00
|
|
|
|
|
|
|
Verify disabling copy tracing still keeps copies from rebase source
|
|
|
|
|
|
|
|
$ hg init copydisable
|
|
|
|
$ cd copydisable
|
|
|
|
$ touch a
|
|
|
|
$ hg ci -Aqm 'add a'
|
|
|
|
$ touch b
|
|
|
|
$ hg ci -Aqm 'add b, c'
|
|
|
|
$ hg cp b x
|
|
|
|
$ echo x >> x
|
|
|
|
$ hg ci -qm 'copy b->x'
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg up -q 'max(desc(add))'
|
2015-01-27 22:26:27 +03:00
|
|
|
$ touch z
|
|
|
|
$ hg ci -Aqm 'add z'
|
|
|
|
$ hg log -G -T '{rev} {desc}\n'
|
|
|
|
@ 3 add z
|
|
|
|
|
|
|
|
|
| o 2 copy b->x
|
|
|
|
|/
|
|
|
|
o 1 add b, c
|
|
|
|
|
|
|
|
|
o 0 add a
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg rebase -d . -b 'desc(copy)' --config extensions.rebase= --config experimental.copytrace=off
|
2019-10-16 02:28:01 +03:00
|
|
|
rebasing 6adcf8c12e7d "copy b->x"
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg up -q 'max(desc(copy))'
|
2015-01-27 22:26:27 +03:00
|
|
|
$ hg log -f x -T '{rev} {desc}\n'
|
2020-07-02 23:11:57 +03:00
|
|
|
4 copy b->x
|
2015-01-27 22:26:27 +03:00
|
|
|
1 add b, c
|
|
|
|
|
|
|
|
$ cd ../
|
|
|
|
|
|
|
|
Verify we duplicate existing copies, instead of detecting them
|
|
|
|
|
|
|
|
$ hg init copydisable3
|
|
|
|
$ cd copydisable3
|
|
|
|
$ touch a
|
|
|
|
$ hg ci -Aqm 'add a'
|
|
|
|
$ hg cp a b
|
|
|
|
$ hg ci -Aqm 'copy a->b'
|
|
|
|
$ hg mv b c
|
|
|
|
$ hg ci -Aqm 'move b->c'
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg up -q 'desc(add)'
|
2015-01-27 22:26:27 +03:00
|
|
|
$ hg cp a b
|
|
|
|
$ echo b >> b
|
|
|
|
$ hg ci -Aqm 'copy a->b (2)'
|
|
|
|
$ hg log -G -T '{rev} {desc}\n'
|
|
|
|
@ 3 copy a->b (2)
|
|
|
|
|
|
|
|
|
| o 2 move b->c
|
|
|
|
| |
|
|
|
|
| o 1 copy a->b
|
|
|
|
|/
|
|
|
|
o 0 add a
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg rebase -d 'desc(move)' -s 'max(desc(copy))' --config extensions.rebase= --config experimental.copytrace=off
|
2019-12-18 00:45:17 +03:00
|
|
|
rebasing 47e1a9e6273b "copy a->b (2)"
|
2015-01-27 22:26:27 +03:00
|
|
|
|
|
|
|
$ hg log -G -f b
|
2020-07-21 03:23:52 +03:00
|
|
|
@ commit: 76024fb4b05b
|
|
|
|
: parent: 235d81efe3d3
|
2016-03-23 23:34:47 +03:00
|
|
|
: user: test
|
|
|
|
: date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
: summary: copy a->b (2)
|
|
|
|
:
|
2020-07-21 03:23:52 +03:00
|
|
|
o commit: ac82d8b1f7c4
|
2015-01-27 22:26:27 +03:00
|
|
|
user: test
|
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
|
summary: add a
|
|
|
|
|