For now it is equivalent to the filelog case, but introducing this early helps
make the comings changesets clearer.
Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
For now it is equivalent to the filelog case, but introducing this early helps
make the comings changesets clearer.
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | tests/test-copies-unrelated.t (25 lines) |
Commit | Parents | Author | Summary | Date |
---|---|---|---|---|
5de940825704 | e5038a958853 | Pierre-Yves David | Oct 6 2019, 11:36 PM |
#testcases filelog compatibility changeset | #testcases filelog compatibility changeset sidedata | ||||
$ cat >> $HGRCPATH << EOF | $ cat >> $HGRCPATH << EOF | ||||
> [extensions] | > [extensions] | ||||
> rebase= | > rebase= | ||||
> [alias] | > [alias] | ||||
> l = log -G -T '{rev} {desc}\n{files}\n' | > l = log -G -T '{rev} {desc}\n{files}\n' | ||||
> EOF | > EOF | ||||
#if compatibility | #if compatibility | ||||
$ cat >> $HGRCPATH << EOF | $ cat >> $HGRCPATH << EOF | ||||
> [experimental] | > [experimental] | ||||
> copies.read-from = compatibility | > copies.read-from = compatibility | ||||
> EOF | > EOF | ||||
#endif | #endif | ||||
#if changeset | #if changeset | ||||
$ cat >> $HGRCPATH << EOF | $ cat >> $HGRCPATH << EOF | ||||
> [experimental] | > [experimental] | ||||
> copies.read-from = changeset-only | > copies.read-from = changeset-only | ||||
> copies.write-to = changeset-only | > copies.write-to = changeset-only | ||||
> EOF | > EOF | ||||
#endif | #endif | ||||
#if sidedata | |||||
$ cat >> $HGRCPATH << EOF | |||||
> [format] | |||||
> exp-use-copies-side-data-changeset = yes | |||||
> EOF | |||||
#endif | |||||
$ REPONUM=0 | $ REPONUM=0 | ||||
$ newrepo() { | $ newrepo() { | ||||
> cd $TESTTMP | > cd $TESTTMP | ||||
> REPONUM=`expr $REPONUM + 1` | > REPONUM=`expr $REPONUM + 1` | ||||
> hg init repo-$REPONUM | > hg init repo-$REPONUM | ||||
> cd repo-$REPONUM | > cd repo-$REPONUM | ||||
> } | > } | ||||
| x | | x | ||||
| o 2 modify x again | | o 2 modify x again | ||||
|/ x | |/ x | ||||
o 1 modify x | o 1 modify x | ||||
| x | | x | ||||
o 0 add x | o 0 add x | ||||
x | x | ||||
$ hg debugpathcopies 0 5 | $ hg debugpathcopies 0 5 | ||||
x -> y (no-filelog !) | x -> y (no-filelog no-sidedata !) | ||||
#if no-filelog | #if no-filelog no-sidedata | ||||
$ hg graft -r 2 | $ hg graft -r 2 | ||||
grafting 2:* "modify x again" (glob) | grafting 2:* "modify x again" (glob) | ||||
merging y and x to y | merging y and x to y | ||||
#else | #else | ||||
BROKEN: This should succeed and merge the changes from x into y | BROKEN: This should succeed and merge the changes from x into y | ||||
$ hg graft -r 2 | $ hg graft -r 2 | ||||
grafting 2:* "modify x again" (glob) | grafting 2:* "modify x again" (glob) | ||||
file 'x' was deleted in local [local] but was modified in other [graft]. | file 'x' was deleted in local [local] but was modified in other [graft]. | ||||
| x | | x | ||||
| o 2 modify x | | o 2 modify x | ||||
| | x | | | x | ||||
| o 1 add x | | o 1 add x | ||||
|/ x | |/ x | ||||
o 0 base | o 0 base | ||||
a | a | ||||
$ hg debugpathcopies 1 5 | $ hg debugpathcopies 1 5 | ||||
x -> y (no-filelog !) | x -> y (no-filelog no-sidedata !) | ||||
#if filelog | #if no-filelog no-sidedata | ||||
$ hg graft -r 2 | |||||
grafting 2:* "modify x" (glob) | |||||
merging y and x to y | |||||
#else | |||||
BROKEN: This should succeed and merge the changes from x into y | BROKEN: This should succeed and merge the changes from x into y | ||||
$ hg graft -r 2 | $ hg graft -r 2 | ||||
grafting 2:* "modify x" (glob) | grafting 2:* "modify x" (glob) | ||||
file 'x' was deleted in local [local] but was modified in other [graft]. | file 'x' was deleted in local [local] but was modified in other [graft]. | ||||
You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. | ||||
What do you want to do? u | What do you want to do? u | ||||
abort: unresolved conflicts, can't continue | abort: unresolved conflicts, can't continue | ||||
(use 'hg resolve' and 'hg graft --continue') | (use 'hg resolve' and 'hg graft --continue') | ||||
[255] | [255] | ||||
#else | |||||
$ hg graft -r 2 | |||||
grafting 2:* "modify x" (glob) | |||||
merging y and x to y | |||||
#endif | #endif | ||||
$ hg co -qC 2 | $ hg co -qC 2 | ||||
BROKEN: This should succeed and merge the changes from x into y | BROKEN: This should succeed and merge the changes from x into y | ||||
$ hg graft -r 5 | $ hg graft -r 5 | ||||
grafting 5:* "rename x to y"* (glob) | grafting 5:* "rename x to y"* (glob) | ||||
file 'x' was deleted in other [graft] but was modified in local [local]. | file 'x' was deleted in other [graft] but was modified in local [local]. | ||||
You can use (c)hanged version, (d)elete, or leave (u)nresolved. | You can use (c)hanged version, (d)elete, or leave (u)nresolved. | ||||
What do you want to do? u | What do you want to do? u |