##// END OF EJS Templates
merge: move initial handling of mergeactions near to later one...
Pulkit Goyal -
r46060:c4f14db3 default
parent child Browse files
Show More
@@ -1407,49 +1407,6 b' def applyupdates('
1407 # mergestate so that it can be reused on commit
1407 # mergestate so that it can be reused on commit
1408 ms.addcommitinfo(f, op)
1408 ms.addcommitinfo(f, op)
1409
1409
1410 moves = []
1411
1412 # 'cd' and 'dc' actions are treated like other merge conflicts
1413 mergeactions = list(
1414 mresult.getactions(
1415 [
1416 mergestatemod.ACTION_CHANGED_DELETED,
1417 mergestatemod.ACTION_DELETED_CHANGED,
1418 mergestatemod.ACTION_MERGE,
1419 ],
1420 sort=True,
1421 )
1422 )
1423 for f, args, msg in mergeactions:
1424 f1, f2, fa, move, anc = args
1425 if f == b'.hgsubstate': # merged internally
1426 continue
1427 if f1 is None:
1428 fcl = filemerge.absentfilectx(wctx, fa)
1429 else:
1430 repo.ui.debug(b" preserving %s for resolve of %s\n" % (f1, f))
1431 fcl = wctx[f1]
1432 if f2 is None:
1433 fco = filemerge.absentfilectx(mctx, fa)
1434 else:
1435 fco = mctx[f2]
1436 actx = repo[anc]
1437 if fa in actx:
1438 fca = actx[fa]
1439 else:
1440 # TODO: move to absentfilectx
1441 fca = repo.filectx(f1, fileid=nullrev)
1442 ms.add(fcl, fco, fca, f)
1443 if f1 != f and move:
1444 moves.append(f1)
1445
1446 # remove renamed files after safely stored
1447 for f in moves:
1448 if wctx[f].lexists():
1449 repo.ui.debug(b"removing %s\n" % f)
1450 wctx[f].audit()
1451 wctx[f].remove()
1452
1453 numupdates = mresult.len() - mresult.len(mergeresult.NO_OP_ACTIONS)
1410 numupdates = mresult.len() - mresult.len(mergeresult.NO_OP_ACTIONS)
1454 progress = repo.ui.makeprogress(
1411 progress = repo.ui.makeprogress(
1455 _(b'updating'), unit=_(b'files'), total=numupdates
1412 _(b'updating'), unit=_(b'files'), total=numupdates
@@ -1597,6 +1554,49 b' def applyupdates('
1597 wctx[f].audit()
1554 wctx[f].audit()
1598 wctx[f].setflags(b'l' in flags, b'x' in flags)
1555 wctx[f].setflags(b'l' in flags, b'x' in flags)
1599
1556
1557 moves = []
1558
1559 # 'cd' and 'dc' actions are treated like other merge conflicts
1560 mergeactions = list(
1561 mresult.getactions(
1562 [
1563 mergestatemod.ACTION_CHANGED_DELETED,
1564 mergestatemod.ACTION_DELETED_CHANGED,
1565 mergestatemod.ACTION_MERGE,
1566 ],
1567 sort=True,
1568 )
1569 )
1570 for f, args, msg in mergeactions:
1571 f1, f2, fa, move, anc = args
1572 if f == b'.hgsubstate': # merged internally
1573 continue
1574 if f1 is None:
1575 fcl = filemerge.absentfilectx(wctx, fa)
1576 else:
1577 repo.ui.debug(b" preserving %s for resolve of %s\n" % (f1, f))
1578 fcl = wctx[f1]
1579 if f2 is None:
1580 fco = filemerge.absentfilectx(mctx, fa)
1581 else:
1582 fco = mctx[f2]
1583 actx = repo[anc]
1584 if fa in actx:
1585 fca = actx[fa]
1586 else:
1587 # TODO: move to absentfilectx
1588 fca = repo.filectx(f1, fileid=nullrev)
1589 ms.add(fcl, fco, fca, f)
1590 if f1 != f and move:
1591 moves.append(f1)
1592
1593 # remove renamed files after safely stored
1594 for f in moves:
1595 if wctx[f].lexists():
1596 repo.ui.debug(b"removing %s\n" % f)
1597 wctx[f].audit()
1598 wctx[f].remove()
1599
1600 # these actions updates the file
1600 # these actions updates the file
1601 updated = mresult.len(
1601 updated = mresult.len(
1602 (
1602 (
@@ -247,9 +247,9 b' Graft out of order, skipping a merge and'
247 resolving manifests
247 resolving manifests
248 branchmerge: True, force: True, partial: False
248 branchmerge: True, force: True, partial: False
249 ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d
249 ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d
250 preserving e for resolve of e
251 d: remote is newer -> g
250 d: remote is newer -> g
252 getting d
251 getting d
252 preserving e for resolve of e
253 e: versions differ -> m (premerge)
253 e: versions differ -> m (premerge)
254 picked tool ':merge' for e (binary False symlink False changedelete False)
254 picked tool ':merge' for e (binary False symlink False changedelete False)
255 merging e
255 merging e
@@ -78,9 +78,9 b' Criss cross merging'
78 resolving manifests
78 resolving manifests
79 branchmerge: True, force: False, partial: False
79 branchmerge: True, force: False, partial: False
80 ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922
80 ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922
81 preserving f2 for resolve of f2
82 f1: remote is newer -> g
81 f1: remote is newer -> g
83 getting f1
82 getting f1
83 preserving f2 for resolve of f2
84 f2: versions differ -> m (premerge)
84 f2: versions differ -> m (premerge)
85 picked tool ':dump' for f2 (binary False symlink False changedelete False)
85 picked tool ':dump' for f2 (binary False symlink False changedelete False)
86 merging f2
86 merging f2
@@ -40,10 +40,10 b''
40 note: possible conflict - a2 was renamed multiple times to:
40 note: possible conflict - a2 was renamed multiple times to:
41 b2
41 b2
42 c2
42 c2
43 b2: remote created -> g
44 getting b2
43 preserving a for resolve of b
45 preserving a for resolve of b
44 removing a
46 removing a
45 b2: remote created -> g
46 getting b2
47 b: remote moved from a -> m (premerge)
47 b: remote moved from a -> m (premerge)
48 picked tool ':merge' for b (binary False symlink False changedelete False)
48 picked tool ':merge' for b (binary False symlink False changedelete False)
49 merging a and b to b
49 merging a and b to b
@@ -89,6 +89,7 b' args:'
89 preserving rev for resolve of rev
89 preserving rev for resolve of rev
90 starting 4 threads for background file closing (?)
90 starting 4 threads for background file closing (?)
91 b: remote copied from a -> m (premerge)
91 b: remote copied from a -> m (premerge)
92 starting 4 threads for background file closing (?)
92 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
93 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
93 merging a and b to b
94 merging a and b to b
94 my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
95 my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
@@ -124,10 +125,10 b' args:'
124 resolving manifests
125 resolving manifests
125 branchmerge: True, force: False, partial: False
126 branchmerge: True, force: False, partial: False
126 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71
127 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71
128 a: remote is newer -> g
129 getting a
127 preserving b for resolve of b
130 preserving b for resolve of b
128 preserving rev for resolve of rev
131 preserving rev for resolve of rev
129 a: remote is newer -> g
130 getting a
131 b: local copied/moved from a -> m (premerge)
132 b: local copied/moved from a -> m (premerge)
132 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
133 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
133 merging b and a to b
134 merging b and a to b
@@ -241,9 +242,9 b' args:'
241 resolving manifests
242 resolving manifests
242 branchmerge: True, force: False, partial: False
243 branchmerge: True, force: False, partial: False
243 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24
244 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24
244 preserving rev for resolve of rev
245 b: remote created -> g
245 b: remote created -> g
246 getting b
246 getting b
247 preserving rev for resolve of rev
247 rev: versions differ -> m (premerge)
248 rev: versions differ -> m (premerge)
248 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
249 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
249 merging rev
250 merging rev
@@ -306,11 +307,11 b' args:'
306 resolving manifests
307 resolving manifests
307 branchmerge: True, force: False, partial: False
308 branchmerge: True, force: False, partial: False
308 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a
309 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a
309 preserving rev for resolve of rev
310 a: other deleted -> r
310 a: other deleted -> r
311 removing a
311 removing a
312 b: remote created -> g
312 b: remote created -> g
313 getting b
313 getting b
314 preserving rev for resolve of rev
314 rev: versions differ -> m (premerge)
315 rev: versions differ -> m (premerge)
315 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
316 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
316 merging rev
317 merging rev
@@ -422,9 +423,9 b' m "um a c" "um x c" " " "10 do merg'
422 note: possible conflict - a was renamed multiple times to:
423 note: possible conflict - a was renamed multiple times to:
423 b
424 b
424 c
425 c
425 preserving rev for resolve of rev
426 c: remote created -> g
426 c: remote created -> g
427 getting c
427 getting c
428 preserving rev for resolve of rev
428 rev: versions differ -> m (premerge)
429 rev: versions differ -> m (premerge)
429 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
430 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
430 merging rev
431 merging rev
@@ -493,10 +494,10 b' m "um a c" "um x c" " " "10 do merg'
493 resolving manifests
494 resolving manifests
494 branchmerge: True, force: False, partial: False
495 branchmerge: True, force: False, partial: False
495 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
496 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
497 a: other deleted -> r
498 removing a
496 preserving b for resolve of b
499 preserving b for resolve of b
497 preserving rev for resolve of rev
500 preserving rev for resolve of rev
498 a: other deleted -> r
499 removing a
500 starting 4 threads for background file closing (?)
501 starting 4 threads for background file closing (?)
501 b: both created -> m (premerge)
502 b: both created -> m (premerge)
502 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
503 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
@@ -534,10 +535,10 b' m "um a c" "um x c" " " "10 do merg'
534 resolving manifests
535 resolving manifests
535 branchmerge: True, force: False, partial: False
536 branchmerge: True, force: False, partial: False
536 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
537 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
538 a: remote is newer -> g
539 getting a
537 preserving b for resolve of b
540 preserving b for resolve of b
538 preserving rev for resolve of rev
541 preserving rev for resolve of rev
539 a: remote is newer -> g
540 getting a
541 b: both renamed from a -> m (premerge)
542 b: both renamed from a -> m (premerge)
542 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
543 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
543 merging b
544 merging b
@@ -571,10 +572,10 b' m "um a c" "um x c" " " "10 do merg'
571 resolving manifests
572 resolving manifests
572 branchmerge: True, force: False, partial: False
573 branchmerge: True, force: False, partial: False
573 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
574 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
575 a: other deleted -> r
576 removing a
574 preserving b for resolve of b
577 preserving b for resolve of b
575 preserving rev for resolve of rev
578 preserving rev for resolve of rev
576 a: other deleted -> r
577 removing a
578 starting 4 threads for background file closing (?)
579 starting 4 threads for background file closing (?)
579 b: both created -> m (premerge)
580 b: both created -> m (premerge)
580 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
581 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
@@ -612,10 +613,10 b' m "um a c" "um x c" " " "10 do merg'
612 resolving manifests
613 resolving manifests
613 branchmerge: True, force: False, partial: False
614 branchmerge: True, force: False, partial: False
614 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
615 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
616 a: remote is newer -> g
617 getting a
615 preserving b for resolve of b
618 preserving b for resolve of b
616 preserving rev for resolve of rev
619 preserving rev for resolve of rev
617 a: remote is newer -> g
618 getting a
619 b: both renamed from a -> m (premerge)
620 b: both renamed from a -> m (premerge)
620 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
621 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
621 merging b
622 merging b
@@ -653,6 +654,7 b' m "um a c" "um x c" " " "10 do merg'
653 preserving rev for resolve of rev
654 preserving rev for resolve of rev
654 starting 4 threads for background file closing (?)
655 starting 4 threads for background file closing (?)
655 b: both renamed from a -> m (premerge)
656 b: both renamed from a -> m (premerge)
657 starting 4 threads for background file closing (?)
656 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
658 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
657 merging b
659 merging b
658 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
660 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
@@ -848,10 +850,10 b' m "nm a b" "um x a" " " "22 get a, '
848 resolving manifests
850 resolving manifests
849 branchmerge: True, force: False, partial: False
851 branchmerge: True, force: False, partial: False
850 ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f
852 ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f
853 c: remote created -> g
854 getting c
851 preserving b for resolve of b
855 preserving b for resolve of b
852 preserving rev for resolve of rev
856 preserving rev for resolve of rev
853 c: remote created -> g
854 getting c
855 b: local copied/moved from a -> m (premerge)
857 b: local copied/moved from a -> m (premerge)
856 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
858 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
857 merging b and a to b
859 merging b and a to b
@@ -43,9 +43,9 b''
43 resolving manifests
43 resolving manifests
44 branchmerge: False, force: False, partial: False
44 branchmerge: False, force: False, partial: False
45 ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
45 ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
46 preserving a for resolve of a
47 b: remote created -> g
46 b: remote created -> g
48 getting b
47 getting b
48 preserving a for resolve of a
49 a: versions differ -> m (premerge)
49 a: versions differ -> m (premerge)
50 picked tool 'true' for a (binary False symlink False changedelete False)
50 picked tool 'true' for a (binary False symlink False changedelete False)
51 merging a
51 merging a
@@ -68,9 +68,9 b''
68 resolving manifests
68 resolving manifests
69 branchmerge: False, force: False, partial: False
69 branchmerge: False, force: False, partial: False
70 ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a
70 ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a
71 preserving a for resolve of a
72 b: other deleted -> r
71 b: other deleted -> r
73 removing b
72 removing b
73 preserving a for resolve of a
74 starting 4 threads for background file closing (?)
74 starting 4 threads for background file closing (?)
75 a: versions differ -> m (premerge)
75 a: versions differ -> m (premerge)
76 picked tool 'true' for a (binary False symlink False changedelete False)
76 picked tool 'true' for a (binary False symlink False changedelete False)
@@ -92,9 +92,9 b''
92 resolving manifests
92 resolving manifests
93 branchmerge: False, force: False, partial: False
93 branchmerge: False, force: False, partial: False
94 ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
94 ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
95 preserving a for resolve of a
96 b: remote created -> g
95 b: remote created -> g
97 getting b
96 getting b
97 preserving a for resolve of a
98 a: versions differ -> m (premerge)
98 a: versions differ -> m (premerge)
99 picked tool 'true' for a (binary False symlink False changedelete False)
99 picked tool 'true' for a (binary False symlink False changedelete False)
100 merging a
100 merging a
General Comments 0
You need to be logged in to leave comments. Login now