Mercurial > hg-stable
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 |