##// END OF EJS Templates
drawdag: include files from both parents in merge commits...
Martin von Zweigbergk -
r33558:0103e718 default
parent child Browse files
Show More
@@ -235,22 +235,21 b' class simplefilectx(object):'
235 235 return ''
236 236
237 237 class simplecommitctx(context.committablectx):
238 def __init__(self, repo, name, parentctxs, added=None):
238 def __init__(self, repo, name, parentctxs, added):
239 239 opts = {
240 'changes': scmutil.status([], added or [], [], [], [], [], []),
240 'changes': scmutil.status([], list(added), [], [], [], [], []),
241 241 'date': '0 0',
242 242 'extra': {'branch': 'default'},
243 243 }
244 244 super(simplecommitctx, self).__init__(self, name, **opts)
245 245 self._repo = repo
246 self._name = name
246 self._added = added
247 247 self._parents = parentctxs
248 self._parents.sort(key=lambda c: c.node())
249 248 while len(self._parents) < 2:
250 249 self._parents.append(repo[node.nullid])
251 250
252 251 def filectx(self, key):
253 return simplefilectx(key, self._name)
252 return simplefilectx(key, self._added[key])
254 253
255 254 def commit(self):
256 255 return self._repo.commitctx(self)
@@ -317,7 +316,17 b' def debugdrawdag(ui, repo, **opts):'
317 316 if name in committed:
318 317 continue
319 318 pctxs = [repo[committed[n]] for n in parents]
320 ctx = simplecommitctx(repo, name, pctxs, [name])
319 pctxs.sort(key=lambda c: c.node())
320 added = {}
321 if len(parents) > 1:
322 # If it's a merge, take the files and contents from the parents
323 for f in pctxs[1].manifest():
324 if f not in pctxs[0].manifest():
325 added[f] = pctxs[1][f].data()
326 else:
327 # If it's not a merge, add a single file
328 added[name] = name
329 ctx = simplecommitctx(repo, name, pctxs, added)
321 330 n = ctx.commit()
322 331 committed[name] = n
323 332 tagsmod.tag(repo, name, n, message=None, user=None, date=None,
@@ -213,7 +213,7 b' Set up repo with non-linear history'
213 213 $ hg log -G -T '{node|short} {desc} {phase}\n'
214 214 o 03ca77807e91 E draft
215 215 |
216 | o 215e7b0814e1 D secret
216 | o 4e4f9194f9f1 D secret
217 217 |/|
218 218 o | dc0947a82db8 C public
219 219 | |
@@ -231,7 +231,7 b' Restore bundle of entire repo'
231 231 426bada5c67598ca65036d57d9e4b64b0c1ce7a0
232 232 112478962961147124edd43549aedd1a335e44bf
233 233 dc0947a82db884575bb76ea10ac97b08536bfa03
234 215e7b0814e1cac8e2614e7284f2a5dc266b4323
234 4e4f9194f9f181c57f62e823e8bdfa46ab9e4ff4
235 235 03ca77807e919db8807c3749086dc36fb478cac0
236 236 phase-heads -- 'sortdict()'
237 237 dc0947a82db884575bb76ea10ac97b08536bfa03 public
@@ -242,7 +242,7 b' Restore bundle of entire repo'
242 242 $ hg log -G -T '{node|short} {desc} {phase}\n'
243 243 o 03ca77807e91 E draft
244 244 |
245 | o 215e7b0814e1 D secret
245 | o 4e4f9194f9f1 D secret
246 246 |/|
247 247 o | dc0947a82db8 C public
248 248 | |
@@ -257,7 +257,7 b' Restore bundle of entire repo'
257 257 Stream params: sortdict([('Compression', 'BZ')])
258 258 changegroup -- "sortdict([('version', '02'), ('nbchanges', '2'), ('targetphase', '2')])"
259 259 112478962961147124edd43549aedd1a335e44bf
260 215e7b0814e1cac8e2614e7284f2a5dc266b4323
260 4e4f9194f9f181c57f62e823e8bdfa46ab9e4ff4
261 261 phase-heads -- 'sortdict()'
262 262 $ rm bundle
263 263
@@ -268,7 +268,7 b' Restore bundle of entire repo'
268 268 changegroup -- "sortdict([('version', '02'), ('nbchanges', '3'), ('targetphase', '2')])"
269 269 112478962961147124edd43549aedd1a335e44bf
270 270 dc0947a82db884575bb76ea10ac97b08536bfa03
271 215e7b0814e1cac8e2614e7284f2a5dc266b4323
271 4e4f9194f9f181c57f62e823e8bdfa46ab9e4ff4
272 272 phase-heads -- 'sortdict()'
273 273 dc0947a82db884575bb76ea10ac97b08536bfa03 public
274 274 $ rm bundle
@@ -278,7 +278,7 b' Restore bundle of entire repo'
278 278 $ hg debugbundle bundle
279 279 Stream params: sortdict([('Compression', 'BZ')])
280 280 changegroup -- "sortdict([('version', '02'), ('nbchanges', '2'), ('targetphase', '2')])"
281 215e7b0814e1cac8e2614e7284f2a5dc266b4323
281 4e4f9194f9f181c57f62e823e8bdfa46ab9e4ff4
282 282 03ca77807e919db8807c3749086dc36fb478cac0
283 283 phase-heads -- 'sortdict()'
284 284 03ca77807e919db8807c3749086dc36fb478cac0 draft
@@ -117,6 +117,18 b' Test what said in drawdag.py docstring'
117 117 /
118 118 o a
119 119
120 $ hg manifest -r a
121 a
122 $ hg manifest -r b
123 a
124 b
125 $ hg manifest -r bar
126 a
127 b
128 $ hg manifest -r foo
129 a
130 b
131 baz
120 132
121 133 Edges existed in repo are no-ops
122 134
@@ -65,7 +65,7 b' Multiple branching points caused by sele'
65 65 > EOS
66 66 rebasing 2:c1e6b162678d "B" (B)
67 67 rebasing 3:d6003a550c2c "C" (C)
68 rebasing 6:5251e0cb7302 "E" (E tip)
68 rebasing 6:54c8f00cb91c "E" (E tip)
69 69 o 6: E
70 70 |\
71 71 | o 5: C
@@ -92,7 +92,7 b' Rebase should not extend the "--base" re'
92 92 > R
93 93 > EOS
94 94 rebasing 2:c1e6b162678d "B" (B)
95 rebasing 5:5251e0cb7302 "E" (E tip)
95 rebasing 5:54c8f00cb91c "E" (E tip)
96 96 o 5: E
97 97 |\
98 98 | o 4: B
@@ -118,7 +118,7 b' Rebase should not simplify the "--base" '
118 118 > EOS
119 119 rebasing 2:c1e6b162678d "B" (B)
120 120 rebasing 3:d6003a550c2c "C" (C)
121 rebasing 5:5251e0cb7302 "E" (E tip)
121 rebasing 5:54c8f00cb91c "E" (E tip)
122 122 o 5: E
123 123 |\
124 124 | o 4: C
@@ -208,18 +208,18 b' Multiple branching points with multiple '
208 208 > A A A
209 209 > EOS
210 210 rebasing 2:dc0947a82db8 "C" (C)
211 rebasing 8:215e7b0814e1 "D" (D)
211 rebasing 8:4e4f9194f9f1 "D" (D)
212 212 rebasing 9:03ca77807e91 "E" (E)
213 213 rebasing 10:afc707c82df0 "F" (F)
214 rebasing 13:018caa673317 "G" (G)
215 rebasing 14:4f710fbd68cb "H" (H)
214 rebasing 13:690dfff91e9e "G" (G)
215 rebasing 14:2893b886bb10 "H" (H)
216 216 rebasing 3:08ebfeb61bac "I" (I)
217 217 rebasing 4:a0a5005cec67 "J" (J)
218 218 rebasing 5:83780307a7e8 "K" (K)
219 219 rebasing 6:e131637a1cb6 "L" (L)
220 rebasing 11:d6fe3d11d95d "M" (M)
221 rebasing 12:fa1e02269063 "N" (N)
222 rebasing 15:448b1a498430 "P" (P tip)
220 rebasing 11:d1f6d0c3c7e4 "M" (M)
221 rebasing 12:7aaec6f81888 "N" (N)
222 rebasing 15:325bc8f1760d "P" (P tip)
223 223 o 15: P
224 224 |\
225 225 | o 14: N
@@ -269,9 +269,9 b' Slightly more complex merge case (mentio'
269 269 rebasing 6:06ca5dfe3b5b "B2" (B2)
270 270 rebasing 7:73508237b032 "C1" (C1)
271 271 rebasing 9:fdb955e2faed "A2" (A2)
272 rebasing 11:1b2f368c3cb5 "A3" (A3)
272 rebasing 11:4e449bd1a643 "A3" (A3)
273 273 rebasing 10:0a33b0519128 "B1" (B1)
274 rebasing 12:bd6a37b5b67a "B3" (B3 tip)
274 rebasing 12:209327807c3a "B3" (B3 tip)
275 275 o 12: B3
276 276 |\
277 277 | o 11: B1
@@ -334,7 +334,7 b' Multiple roots. One root is not an ances'
334 334 > \|\|
335 335 > A C
336 336 > EOF
337 nothing to rebase from 86d01f49c0d9+b70f76719894 to 262e37e34f63
337 nothing to rebase from f675d5a1c6a4+b70f76719894 to 262e37e34f63
338 338 [1]
339 339
340 340 Multiple roots. One root is not an ancestor of dest. Select using a merge:
@@ -346,8 +346,8 b' Multiple roots. One root is not an ances'
346 346 > \|\|
347 347 > A C
348 348 > EOF
349 rebasing 2:86d01f49c0d9 "B" (B)
350 rebasing 5:539a0ff83ea9 "E" (E tip)
349 rebasing 2:f675d5a1c6a4 "B" (B)
350 rebasing 5:f68696fe6af8 "E" (E tip)
351 351 o 5: E
352 352 |\
353 353 | o 4: B
@@ -367,8 +367,8 b' Multiple roots. Two children share two p'
367 367 > \|\|\
368 368 > A C A
369 369 > EOF
370 rebasing 2:86d01f49c0d9 "B" (B)
371 rebasing 3:b7df2ca01aa8 "D" (D)
370 rebasing 2:f675d5a1c6a4 "B" (B)
371 rebasing 3:c2a779e13b56 "D" (D)
372 372 o 4: D
373 373 |\
374 374 +---o 3: B
@@ -974,7 +974,7 b' Use delayedstrip to strip inside a trans'
974 974 > EOF
975 975 $ hg log -r . -T '\n' --config extensions.t=$TESTTMP/delayedstrip.py
976 976 warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22
977 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-81fa23b0-I.hg (glob)
977 saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg (glob)
978 978
979 979 $ hg log -G -T '{rev}:{node|short} {desc}' -r 'sort(all(), topo)'
980 980 @ 6:2f2d51af6205 J
@@ -1030,9 +1030,9 b' Test high-level scmutil.cleanupnodes API'
1030 1030 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1031 1031 o 8:1473d4b996d1 G2 b-F@divergent3 b-G
1032 1032 |
1033 | o 7:d94e89b773b6 F2 b-F
1033 | o 7:d11b3456a873 F2 b-F
1034 1034 | |
1035 | o 5:7fe5bac4c918 H
1035 | o 5:5cb05ba470a7 H
1036 1036 |/|
1037 1037 | o 3:7fb047a69f22 E b-F@divergent1
1038 1038 | |
@@ -1050,7 +1050,7 b' Test high-level scmutil.cleanupnodes API'
1050 1050 b-B 0:426bada5c675
1051 1051 b-C 0:426bada5c675
1052 1052 b-D 6:7c78f703e465
1053 b-F 7:d94e89b773b6
1053 b-F 7:d11b3456a873
1054 1054 b-F@divergent1 3:7fb047a69f22
1055 1055 b-F@divergent3 8:1473d4b996d1
1056 1056 b-G 8:1473d4b996d1
@@ -1073,9 +1073,9 b' we have reusable code here'
1073 1073 $ hg log -G -T '{rev}:{node|short} {desc} {bookmarks}' -r 'sort(all(), topo)'
1074 1074 o 12:1473d4b996d1 G2 b-F@divergent3 b-G
1075 1075 |
1076 | o 11:d94e89b773b6 F2 b-F
1076 | o 11:d11b3456a873 F2 b-F
1077 1077 | |
1078 | o 8:7fe5bac4c918 H
1078 | o 8:5cb05ba470a7 H
1079 1079 |/|
1080 1080 | o 4:7fb047a69f22 E b-F@divergent1
1081 1081 | |
@@ -1091,7 +1091,7 b' we have reusable code here'
1091 1091
1092 1092 $ hg debugobsolete
1093 1093 1fc8102cda6204549f031015641606ccf5513ec3 1473d4b996d1d1b121de6b39fab6a04fbf9d873e 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1094 64a8289d249234b9886244d379f15e6b650b28e3 d94e89b773b67e72642a931159ada8d1a9246998 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1094 64a8289d249234b9886244d379f15e6b650b28e3 d11b3456a873daec7c7bc53e5622e8df6d741bd2 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1095 1095 f585351a92f85104bff7c284233c338b10eb1df7 7c78f703e465d73102cc8780667ce269c5208a40 0 (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1096 1096 48b9aae0607f43ff110d84e6883c151942add5ab 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
1097 1097 112478962961147124edd43549aedd1a335e44bf 0 {426bada5c67598ca65036d57d9e4b64b0c1ce7a0} (Thu Jan 01 00:00:00 1970 +0000) {'operation': 'replace', 'user': 'test'}
General Comments 0
You need to be logged in to leave comments. Login now