[Commented On] D9610: copies-test: add test chaining multiple merge
baymax (Baymax, Your Personal Patch-care Companion)
phabricator at mercurial-scm.org
Fri Dec 18 14:55:04 UTC 2020
baymax added a comment.
baymax updated this revision to Diff 24415.
✅ refresh by Heptapod after a successful CI run (🐙 💚)
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D9610?vs=24407&id=24415
BRANCH
default
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D9610/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D9610
AFFECTED FILES
tests/test-copies-chain-merge.t
CHANGE DETAILS
diff --git a/tests/test-copies-chain-merge.t b/tests/test-copies-chain-merge.t
--- a/tests/test-copies-chain-merge.t
+++ b/tests/test-copies-chain-merge.t
@@ -738,6 +738,89 @@
o 0 i-0 initial commit: a b h
+Subcase: chaining salvage information during a merge
+````````````````````````````````````````````````````
+
+We add more change on the branch were the file was deleted. merging again
+should preserve the fact eh file was salvaged.
+
+(creating the change)
+
+ $ hg up 'desc("c-1")'
+ 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ echo l > unrelated-l
+ $ hg add unrelated-l
+ $ hg ci -m 'l-1: unrelated changes (based on "c" changes)'
+ created new head
+
+(Merge variant 1)
+
+ $ hg up 'desc("mBC-revert-m")'
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("l-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mBC+revert,Lm: simple merge'
+
+(Merge variant 2)
+
+ $ hg up 'desc("mCB-revert-m")'
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("l-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mCB+revert,Lm: simple merge'
+
+(Merge variant 3)
+
+ $ hg up 'desc("l-1")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+ $ hg merge 'desc("mBC-revert-m")'
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mL,BC+revertm: simple merge'
+ created new head
+
+(Merge variant 4)
+
+ $ hg up 'desc("l-1")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+ $ hg merge 'desc("mCB-revert-m")'
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mL,CB+revertm: simple merge'
+ created new head
+
+ $ hg log -G --rev '::(desc("mBC+revert,Lm") + desc("mCB+revert,Lm") + desc("mL,BC+revertm") + desc("mL,CB+revertm"))'
+ @ 47 mL,CB+revertm: simple merge
+ |\
+ | | o 46 mL,BC+revertm: simple merge
+ | |/|
+ +-+---o 45 mCB+revert,Lm: simple merge
+ | | |
+ | +---o 44 mBC+revert,Lm: simple merge
+ | | |/
+ | o | 43 l-1: unrelated changes (based on "c" changes)
+ | | |
+ | | o 33 mBC-revert-m-0
+ | |/|
+ o---+ 32 mCB-revert-m-0
+ |/ /
+ o | 6 c-1 delete d
+ | |
+ | o 5 b-1: b update
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+
Summary of all created cases
----------------------------
@@ -764,15 +847,18 @@
i-2: c -move-> d
j-1: unrelated changes (based on the "a" series of changes)
k-1: unrelated changes (based on "e" changes)
+ l-1: unrelated changes (based on "c" changes)
mABm-0 simple merge - the other way
mAE,Km: simple merge
mAEm-0 simple merge - one way
mBAm-0 simple merge - one way
+ mBC+revert,Lm: simple merge
mBC-revert-m-0
mBCm-0 simple merge - one way
mBCm-1 re-add d
mBDm-0 simple merge - one way
mBFm-0 simple merge - one way
+ mCB+revert,Lm: simple merge
mCB-revert-m-0
mCBm-0 simple merge - the other way
mCBm-1 re-add d
@@ -790,6 +876,8 @@
mHC-delete-before-conflict-m-0
mJ,EAm: simple merge
mK,AEm: simple merge
+ mL,BC+revertm: simple merge
+ mL,CB+revertm: simple merge
Test that sidedata computations during upgrades are correct
@@ -1053,6 +1141,27 @@
1 sidedata entries
entry-0014 size 4
'\x00\x00\x00\x00'
+ ##### revision 43 #####
+ 1 sidedata entries
+ entry-0014 size 24
+ '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-l'
+ added : unrelated-l, ;
+ ##### revision 44 #####
+ 1 sidedata entries
+ entry-0014 size 4
+ '\x00\x00\x00\x00'
+ ##### revision 45 #####
+ 1 sidedata entries
+ entry-0014 size 4
+ '\x00\x00\x00\x00'
+ ##### revision 46 #####
+ 1 sidedata entries
+ entry-0014 size 4
+ '\x00\x00\x00\x00'
+ ##### revision 47 #####
+ 1 sidedata entries
+ entry-0014 size 4
+ '\x00\x00\x00\x00'
#endif
@@ -1941,3 +2050,61 @@
a (known-bad-output upgraded !)
+Subcase: chaining salvage information during a merge
+````````````````````````````````````````````````````
+
+We add more change on the branch were the file was deleted. merging again
+should preserve the fact eh file was salvaged.
+
+reference output:
+
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
+ M b
+ A d
+ a (filelog !)
+ a (sidedata !)
+ a (upgraded !)
+ R a
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
+ M b
+ A d
+ a (filelog !)
+ a (sidedata !)
+ a (upgraded !)
+ R a
+
+chained output
+
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC+revert,Lm")'
+ M b
+ A d
+ a (filelog !)
+ a (missing-correct-output sidedata !)
+ a (missing-correct-output upgraded !)
+ A unrelated-l
+ R a
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB+revert,Lm")'
+ M b
+ A d
+ a (filelog !)
+ a (missing-correct-output sidedata !)
+ a (missing-correct-output upgraded !)
+ A unrelated-l
+ R a
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mL,BC+revertm")'
+ M b
+ A d
+ a (filelog !)
+ a (missing-correct-output sidedata !)
+ a (missing-correct-output upgraded !)
+ A unrelated-l
+ R a
+ $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mL,CB+revertm")'
+ M b
+ A d
+ a (filelog !)
+ a (missing-correct-output sidedata !)
+ a (missing-correct-output upgraded !)
+ A unrelated-l
+ R a
+
To: marmoute, #hg-reviewers
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20201218/a9d207eb/attachment-0002.html>
More information about the Mercurial-patches
mailing list