##// END OF EJS Templates
copies: make _checkcopies handle copy sequences spanning the TCA (issue4028)...
Gábor Stefanik -
r30204:1894c830 default
parent child Browse files
Show More
@@ -611,6 +611,7 b' def _checkcopies(ctx, f, m1, m2, base, t'
611 611 """
612 612
613 613 mb = base.manifest()
614 mta = tca.manifest()
614 615 # Might be true if this call is about finding backward renames,
615 616 # This happens in the case of grafts because the DAG is then rotated.
616 617 # If the file exists in both the base and the source, we are not looking
@@ -665,8 +666,17 b' def _checkcopies(ctx, f, m1, m2, base, t'
665 666 break
666 667 return
667 668
668 if of in mb:
669 data['diverge'].setdefault(of, []).append(f)
669 if of in mta:
670 if backwards or remotebase:
671 data['incomplete'][of] = f
672 else:
673 for sf in seen:
674 if sf in mb:
675 if tca == base:
676 data['diverge'].setdefault(sf, []).append(f)
677 else:
678 data['incompletediverge'][sf] = [of, f]
679 return
670 680
671 681 def duplicatecopies(repo, rev, fromrev, skiprev=None):
672 682 '''reproduce copies from fromrev to rev in the dirstate
@@ -957,15 +957,6 b' two renames actually converge to the sam'
957 957 grafting 2:f58c7e2b28fa "C0"
958 958 merging f1a and f1b to f1a
959 959 merging f5a
960 warning: conflicts while merging f5a! (edit, then use 'hg resolve --mark')
961 abort: unresolved conflicts, can't continue
962 (use 'hg resolve' and 'hg graft --continue')
963 [255]
964 $ hg resolve f5a -t ':other' # XXX work around failure
965 (no more unresolved files)
966 continue: hg graft --continue
967 $ hg graft --continue # XXX work around failure
968 grafting 2:f58c7e2b28fa "C0"
969 960 warning: can't find ancestor for 'f5a' copied from 'f5b'!
970 961 $ hg status --change .
971 962 M f1a
@@ -975,7 +966,7 b' two renames actually converge to the sam'
975 966 $ hg cat f1a
976 967 c1c
977 968 $ hg cat f1b
978 f1b: no such file in rev 43e4b415492d
969 f1b: no such file in rev c9763722f9bd
979 970 [1]
980 971
981 972 Test the cases A.0 (f4x) and A.6 (f3x)
@@ -997,23 +988,23 b' Set up the repository for some further t'
997 988 $ hg mv f5a f5b
998 989 $ hg ci -qAm "E0"
999 990 $ hg log -G
1000 @ changeset: 6:ebba59d1fb02
991 @ changeset: 6:6bd1736cab86
1001 992 | tag: tip
1002 993 | parent: 0:11f7a1b56675
1003 994 | user: test
1004 995 | date: Thu Jan 01 00:00:00 1970 +0000
1005 996 | summary: E0
1006 997 |
1007 | o changeset: 5:4f4ba7a6e606
998 | o changeset: 5:560daee679da
1008 999 | | user: test
1009 1000 | | date: Thu Jan 01 00:00:00 1970 +0000
1010 1001 | | summary: D1
1011 1002 | |
1012 | o changeset: 4:43e4b415492d
1003 | o changeset: 4:c9763722f9bd
1013 1004 |/ parent: 0:11f7a1b56675
1014 1005 | user: test
1015 1006 | date: Thu Jan 01 00:00:00 1970 +0000
1016 | summary: C0
1007 | summary: C1
1017 1008 |
1018 1009 | o changeset: 3:b69f5839d2d9
1019 1010 | | user: test
@@ -1041,34 +1032,24 b' and A.3 with a local content change to b'
1041 1032
1042 1033 $ HGEDITOR="echo C2 >" hg graft -r 'desc("C0")' --edit
1043 1034 grafting 2:f58c7e2b28fa "C0"
1044 other [graft] changed f1b which local [local] deleted
1045 use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
1035 merging f1e and f1b to f1e
1046 1036 merging f2a and f2c to f2c
1047 1037 merging f5b and f5a to f5a
1048 abort: unresolved conflicts, can't continue
1049 (use 'hg resolve' and 'hg graft --continue')
1050 [255]
1051 $ hg resolve f1b -t ':other' # XXX work around failure
1052 (no more unresolved files)
1053 continue: hg graft --continue
1054 $ hg graft --continue # XXX work around failure
1055 grafting 2:f58c7e2b28fa "C0"
1056 grafting 4:43e4b415492d "C0"
1057 merging f1e and f1a to f1e
1058 merging f2c
1059 warning: can't find ancestor for 'f2c' copied from 'f2a'!
1060 1038
1061 1039 Test the cases A.1 (f4x) and A.7 (f3x).
1062 1040
1063 1041 $ HGEDITOR="echo D2 >" hg graft -r 'desc("D0")' --edit
1064 1042 grafting 3:b69f5839d2d9 "D0"
1043 note: possible conflict - f3b was renamed multiple times to:
1044 f3e
1045 f3d
1065 1046 merging f4e and f4a to f4e
1066 1047 warning: can't find ancestor for 'f3d' copied from 'f3b'!
1067 1048
1068 1049 Check the results of the grafts tested
1069 1050
1070 1051 $ hg log -CGv --patch --git
1071 @ changeset: 9:100f4d78e056
1052 @ changeset: 8:93ee502e8b0a
1072 1053 | tag: tip
1073 1054 | user: test
1074 1055 | date: Thu Jan 01 00:00:00 1970 +0000
@@ -1090,12 +1071,13 b' Check the results of the grafts tested'
1090 1071 | -c4a
1091 1072 | +c4d
1092 1073 |
1093 o changeset: 8:84915a7da133
1074 o changeset: 7:539cf145f496
1094 1075 | user: test
1095 1076 | date: Thu Jan 01 00:00:00 1970 +0000
1096 | files: f1e f5a.orig
1077 | files: f1e f2a f2c f5a f5b
1078 | copies: f2c (f2a) f5a (f5b)
1097 1079 | description:
1098 | C0
1080 | C2
1099 1081 |
1100 1082 |
1101 1083 | diff --git a/f1e b/f1e
@@ -1104,32 +1086,6 b' Check the results of the grafts tested'
1104 1086 | @@ -1,1 +1,1 @@
1105 1087 | -c1a
1106 1088 | +c1c
1107 | diff --git a/f5a.orig b/f5a.orig
1108 | deleted file mode 100644
1109 | --- a/f5a.orig
1110 | +++ /dev/null
1111 | @@ -1,5 +0,0 @@
1112 | -<<<<<<< local: 11f7a1b56675 - test: A0
1113 | -c5a
1114 | -=======
1115 | -c5c
1116 | ->>>>>>> graft: f58c7e2b28fa - test: C0
1117 |
1118 o changeset: 7:dc778749ee9a
1119 | user: test
1120 | date: Thu Jan 01 00:00:00 1970 +0000
1121 | files: f1b f2a f2c f5a f5b
1122 | copies: f2c (f2a) f5a (f5b)
1123 | description:
1124 | C0
1125 |
1126 |
1127 | diff --git a/f1b b/f1b
1128 | new file mode 100644
1129 | --- /dev/null
1130 | +++ b/f1b
1131 | @@ -0,0 +1,1 @@
1132 | +c1c
1133 1089 | diff --git a/f2a b/f2c
1134 1090 | rename from f2a
1135 1091 | rename to f2c
@@ -1142,11 +1098,11 b' Check the results of the grafts tested'
1142 1098 | -c5a
1143 1099 | +c5c
1144 1100 |
1145 o changeset: 6:ebba59d1fb02
1101 o changeset: 6:6bd1736cab86
1146 1102 | parent: 0:11f7a1b56675
1147 1103 | user: test
1148 1104 | date: Thu Jan 01 00:00:00 1970 +0000
1149 | files: f1a f1e f2a f3a f3e f4a f4e f5a f5a.orig f5b
1105 | files: f1a f1e f2a f3a f3e f4a f4e f5a f5b
1150 1106 | copies: f1e (f1a) f3e (f3a) f4e (f4a) f5b (f5a)
1151 1107 | description:
1152 1108 | E0
@@ -1167,21 +1123,11 b' Check the results of the grafts tested'
1167 1123 | diff --git a/f4a b/f4e
1168 1124 | rename from f4a
1169 1125 | rename to f4e
1170 | diff --git a/f5a.orig b/f5a.orig
1171 | new file mode 100644
1172 | --- /dev/null
1173 | +++ b/f5a.orig
1174 | @@ -0,0 +1,5 @@
1175 | +<<<<<<< local: 11f7a1b56675 - test: A0
1176 | +c5a
1177 | +=======
1178 | +c5c
1179 | +>>>>>>> graft: f58c7e2b28fa - test: C0
1180 1126 | diff --git a/f5a b/f5b
1181 1127 | rename from f5a
1182 1128 | rename to f5b
1183 1129 |
1184 | o changeset: 5:4f4ba7a6e606
1130 | o changeset: 5:560daee679da
1185 1131 | | user: test
1186 1132 | | date: Thu Jan 01 00:00:00 1970 +0000
1187 1133 | | files: f3d f4a
@@ -1202,14 +1148,14 b' Check the results of the grafts tested'
1202 1148 | | -c4a
1203 1149 | | +c4d
1204 1150 | |
1205 | o changeset: 4:43e4b415492d
1151 | o changeset: 4:c9763722f9bd
1206 1152 |/ parent: 0:11f7a1b56675
1207 1153 | user: test
1208 1154 | date: Thu Jan 01 00:00:00 1970 +0000
1209 1155 | files: f1a f2a f2c f5a
1210 1156 | copies: f2c (f2a)
1211 1157 | description:
1212 | C0
1158 | C1
1213 1159 |
1214 1160 |
1215 1161 | diff --git a/f1a b/f1a
General Comments 0
You need to be logged in to leave comments. Login now