comparison tests/test-copies-chain-merge.t @ 45472:14be07d5603c

copy-tracing: test case where a merge reverted a file deletion This case is currently broken for commit centric copy tracing. So we add an official case for it with a note about it being broken. Fixing it will requires multiples change in code related to merge, commit and copy tracing, so we introduce it beforehand for simplicity. Also, I have been sitting on this test for 3 months so I would rather have it upstream.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 19 Jun 2020 06:15:06 +0200
parents 4b582a93316a
children a357688e3c9c
comparison
equal deleted inserted replaced
45471:4b582a93316a 45472:14be07d5603c
924 A d 924 A d
925 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mGCm-0")' 925 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mGCm-0")'
926 A d 926 A d
927 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mCGm-0")' 927 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mCGm-0")'
928 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGCm-0")' 928 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGCm-0")'
929
930
931 Comparing with merge restoring an untouched deleted file
932 --------------------------------------------------------
933
934 Merge:
935 - one removing a file (d)
936 - one leaving the file untouched
937 - the merge actively restore the file to the same content.
938
939 In this case, the file keep on living after the merge. So we should not drop its
940 copy tracing chain.
941
942 $ hg up 'desc("c-1")'
943 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
944 $ hg merge 'desc("b-1")'
945 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
946 (branch merge, don't forget to commit)
947 $ hg revert --rev 'desc("b-1")' d
948 $ hg ci -m "mCB-revert-m-0"
949 created new head
950
951 $ hg up 'desc("b-1")'
952 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
953 $ hg merge 'desc("c-1")'
954 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
955 (branch merge, don't forget to commit)
956 $ hg revert --rev 'desc("b-1")' d
957 $ hg ci -m "mBC-revert-m-0"
958 created new head
959
960 $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
961 @ 33 mBC-revert-m-0
962 |\
963 +---o 32 mCB-revert-m-0
964 | |/
965 | o 6 c-1 delete d
966 | |
967 o | 5 b-1: b update
968 |/
969 o 2 i-2: c -move-> d
970 |
971 o 1 i-1: a -move-> c
972 |
973 o 0 i-0 initial commit: a b h
974
975
976 BROKEN: 'a' should be the the source of 'd' in the changeset centric algorithm too
977
978 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
979 M b
980 A d
981 a (filelog !)
982 R a
983 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
984 M b
985 A d
986 a (filelog !)
987 R a
988 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
989 M b
990 A d
991 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")'
992 M b
993 A d
994 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")'
995 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")'
996