D5962: copies: add test that makes both the merging csets dirty and fails
khanchi97 (Sushil khanchi)
phabricator at mercurial-scm.org
Sun Mar 3 06:50:29 UTC 2019
khanchi97 updated this revision to Diff 14309.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5962?vs=14240&id=14309
REVISION DETAIL
https://phab.mercurial-scm.org/D5962
AFFECTED FILES
tests/test-copies.t
CHANGE DETAILS
diff --git a/tests/test-copies.t b/tests/test-copies.t
--- a/tests/test-copies.t
+++ b/tests/test-copies.t
@@ -1,6 +1,8 @@
#testcases filelog compatibility
$ cat >> $HGRCPATH << EOF
+ > [extensions]
+ > rebase=
> [alias]
> l = log -G -T '{rev} {desc}\n{files}\n'
> EOF
@@ -597,3 +599,108 @@
+baba
+Test which demonstrate that fullcopytracing algorithm can fail to handle a case when both the csets are dirty
+----------------------------------------------------------------------------------------------------------
+
+ $ newrepo
+ $ echo a > a
+ $ hg add a
+ $ hg ci -m "added a"
+ $ echo b > b
+ $ hg add b
+ $ hg ci -m "added b"
+
+ $ echo foobar > willconflict
+ $ hg add willconflict
+ $ hg ci -m "added willconflict"
+ $ echo c > c
+ $ hg add c
+ $ hg ci -m "added c"
+
+ $ hg log -G -T '{rev} : {node|short} {desc} \n{phase}\n'
+ @ 3 : 9a8bb7cc6814 added c
+ | draft
+ o 2 : d2ea38baf44e added willconflict
+ | draft
+ o 1 : 5f6d8a4bf34a added b
+ | draft
+ o 0 : 9092f1db7931 added a
+ draft
+
+ $ hg up ".^^"
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo d > d
+ $ hg add d
+ $ hg ci -m "added d"
+ created new head
+
+ $ echo barfoo > willconflict
+ $ hg add willconflict
+ $ hg ci --amend -m "added willconflict and d"
+
+ $ hg log -G -T '{rev} : {node|short} {desc} \n{phase}\n'
+ @ 5 : 5018b1509e94 added willconflict and d
+ | draft
+ | o 3 : 9a8bb7cc6814 added c
+ | | draft
+ | o 2 : d2ea38baf44e added willconflict
+ |/ draft
+ o 1 : 5f6d8a4bf34a added b
+ | draft
+ o 0 : 9092f1db7931 added a
+ draft
+
+ $ hg rebase -r . -d 2
+ rebasing 5:5018b1509e94 "added willconflict and d" (tip)
+ merging willconflict
+ warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
+ unresolved conflicts (see hg resolve, then hg rebase --continue)
+ [1]
+
+ $ hg diff
+ diff -r d2ea38baf44e d
+ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+ +++ b/d Thu Jan 01 00:00:00 1970 +0000
+ @@ -0,0 +1,1 @@
+ +d
+ diff -r d2ea38baf44e willconflict
+ --- a/willconflict Thu Jan 01 00:00:00 1970 +0000
+ +++ b/willconflict Thu Jan 01 00:00:00 1970 +0000
+ @@ -1,1 +1,5 @@
+ +<<<<<<< dest: d2ea38baf44e - test: added willconflict
+ foobar
+ +=======
+ +barfoo
+ +>>>>>>> source: 5018b1509e94 - test: added willconflict and d
+
+ $ echo barfoo > willconflict
+ $ hg resolve -m
+ (no more unresolved files)
+ continue: hg rebase --continue
+ $ hg rebase --continue
+ rebasing 5:5018b1509e94 "added willconflict and d" (tip)
+
+ $ hg up 3 -q
+
+ $ hg log -G --hidden -T '{rev} : {node|short} {desc} \n{phase}\n'
+ o 6 : 99802e4f1e46 added willconflict and d
+ | draft
+ | x 5 : 5018b1509e94 added willconflict and d
+ | | draft
+ | | x 4 : c9241b0f2d5b added d
+ | |/ draft
+ +---@ 3 : 9a8bb7cc6814 added c
+ | | draft
+ o | 2 : d2ea38baf44e added willconflict
+ |/ draft
+ o 1 : 5f6d8a4bf34a added b
+ | draft
+ o 0 : 9092f1db7931 added a
+ draft
+
+Now if we trigger a merge between cset revision 3 and 6 using base revision 4, in this case
+both the merging csets will be dirty as no one is descendent of base revision:
+
+ $ hg graft -r 6 --base c9241b0f2d5b --hidden 2>&1 | grep "AssertionError"
+ AssertionError
+
To: khanchi97, #hg-reviewers
Cc: martinvonz, mercurial-devel
More information about the Mercurial-devel
mailing list