D5962: copies: add test that makes both the merging csets dirty and fails
khanchi97 (Sushil khanchi)
phabricator at mercurial-scm.org
Mon Mar 11 05:49:25 EDT 2019
khanchi97 updated this revision to Diff 14456.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5962?vs=14347&id=14456
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
@@ -552,3 +554,80 @@
b
+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 l
+ @ 3 added c
+ | c
+ o 2 added willconflict
+ | willconflict
+ o 1 added b
+ | b
+ o 0 added a
+ a
+
+ $ 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 l
+ @ 5 added willconflict and d
+ | d willconflict
+ | o 3 added c
+ | | c
+ | o 2 added willconflict
+ |/ willconflict
+ o 1 added b
+ | b
+ o 0 added a
+ a
+
+ $ hg rebase -r . -d 2 -t :other
+ rebasing 5:5018b1509e94 "added willconflict and d" (tip)
+
+ $ hg up 3 -q
+ $ hg l --hidden
+ o 6 added willconflict and d
+ | d willconflict
+ | x 5 added willconflict and d
+ | | d willconflict
+ | | x 4 added d
+ | |/ d
+ +---@ 3 added c
+ | | c
+ o | 2 added willconflict
+ |/ willconflict
+ o 1 added b
+ | b
+ o 0 added a
+ a
+
+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 4 --hidden 2>&1 | grep "AssertionError"
+ AssertionError
+
To: khanchi97, #hg-reviewers
Cc: martinvonz, mercurial-devel
More information about the Mercurial-devel
mailing list