# HG changeset patch # User Mads Kiilerich # Date 2013-01-24 22:57:44 # Node ID 5ed6a375e9caffec96666cd08c83fde4ee6e0dc7 # Parent 139529b0a191ef57218252e7cfc3770bd921e6f0 merge: delay debug messages for merge actions Show messages at a point where the actions have been sorted, thus preparing for backout of 760c0d67ce5e. This makes manifestmerge more of a silent operation, just like 'copies' is. Indent 'preserving' messages to make them subordinate to the action logging so they fit in the new context. (The 'preserving' messages are quite redundant and could also be removed completely.) diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -368,7 +368,7 @@ def overridemanifestmerge(origfn, repo, if overwrite: processed.append(action) continue - f, m, args = action + f, m, args, msg = action choices = (_('&Largefile'), _('&Normal file')) if m == "g" and lfutil.splitstandin(f) in p1 and f in p2: @@ -379,10 +379,10 @@ def overridemanifestmerge(origfn, repo, msg = _('%s has been turned into a largefile\n' 'use (l)argefile or keep as (n)ormal file?') % lfile if repo.ui.promptchoice(msg, choices, 0) == 0: - processed.append((lfile, "r", None)) - processed.append((standin, "g", (p2.flags(standin),))) + processed.append((lfile, "r", None, msg)) + processed.append((standin, "g", (p2.flags(standin),), msg)) else: - processed.append((standin, "r", None)) + processed.append((standin, "r", None, msg)) elif m == "g" and lfutil.standin(f) in p1 and f in p2: # Case 2: largefile in the working copy, normal file in # the second parent @@ -391,10 +391,10 @@ def overridemanifestmerge(origfn, repo, msg = _('%s has been turned into a normal file\n' 'keep as (l)argefile or use (n)ormal file?') % lfile if repo.ui.promptchoice(msg, choices, 0) == 0: - processed.append((lfile, "r", None)) + processed.append((lfile, "r", None, msg)) else: - processed.append((standin, "r", None)) - processed.append((lfile, "g", (p2.flags(lfile),))) + processed.append((standin, "r", None, msg)) + processed.append((lfile, "g", (p2.flags(lfile),), msg)) else: processed.append(action) diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -176,12 +176,12 @@ def _forgetremoved(wctx, mctx, branchmer state = branchmerge and 'r' or 'f' for f in wctx.deleted(): if f not in mctx: - actions.append((f, state, None)) + actions.append((f, state, None, "forget deleted")) if not branchmerge: for f in wctx.removed(): if f not in mctx: - actions.append((f, "f", None)) + actions.append((f, "f", None, "forget removed")) return actions @@ -194,8 +194,7 @@ def manifestmerge(repo, p1, p2, pa, over """ def act(msg, m, f, *args): - repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m)) - actions.append((f, m, args)) + actions.append((f, m, args, msg)) actions, copy, movewithdir = [], {}, {} @@ -342,12 +341,13 @@ def applyupdates(repo, actions, wctx, mc # prescan for merges for a in actions: - f, m, args = a + f, m, args, msg = a + repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m)) if m == "m": # merge f2, fd, move = args if fd == '.hgsubstate': # merged internally continue - repo.ui.debug("preserving %s for resolve of %s\n" % (f, fd)) + repo.ui.debug(" preserving %s for resolve of %s\n" % (f, fd)) fcl = wctx[f] fco = mctx[f2] if mctx == actx: # backwards, use working dir parent as ancestor @@ -374,7 +374,7 @@ def applyupdates(repo, actions, wctx, mc numupdates = len(actions) for i, a in enumerate(actions): - f, m, args = a + f, m, args, msg = a repo.ui.progress(_('updating'), i + 1, item=f, total=numupdates, unit=_('files')) if m == "r": # remove @@ -468,7 +468,7 @@ def recordupdates(repo, actions, branchm "record merge actions to the dirstate" for a in actions: - f, m, args = a + f, m, args, msg = a if m == "r": # remove if branchmerge: repo.dirstate.remove(f) diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t --- a/tests/test-copy-move-merge.t +++ b/tests/test-copy-move-merge.t @@ -32,9 +32,9 @@ overwrite: False, partial: False ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6 a: remote moved to b -> m + preserving a for resolve of b a: remote moved to c -> m - preserving a for resolve of b - preserving a for resolve of c + preserving a for resolve of c removing a updating: a 1/2 files (50.00%) picked tool 'internal:merge' for b (binary False symlink False) diff --git a/tests/test-double-merge.t b/tests/test-double-merge.t --- a/tests/test-double-merge.t +++ b/tests/test-double-merge.t @@ -35,10 +35,10 @@ we get conflicts that shouldn't be there resolving manifests overwrite: False, partial: False ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 + foo: remote copied to bar -> m + preserving foo for resolve of bar foo: versions differ -> m - foo: remote copied to bar -> m - preserving foo for resolve of bar - preserving foo for resolve of foo + preserving foo for resolve of foo updating: foo 1/2 files (50.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging foo and bar to bar diff --git a/tests/test-graft.t b/tests/test-graft.t --- a/tests/test-graft.t +++ b/tests/test-graft.t @@ -137,7 +137,7 @@ Graft out of order, skipping a merge and overwrite: False, partial: False ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6 b: local copied/moved to a -> m - preserving b for resolve of b + preserving b for resolve of b updating: b 1/1 files (100.00%) picked tool 'internal:merge' for b (binary False symlink False) merging b and a to b @@ -160,7 +160,7 @@ Graft out of order, skipping a merge and ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d d: remote is newer -> g e: versions differ -> m - preserving e for resolve of e + preserving e for resolve of e updating: d 1/2 files (50.00%) getting d updating: e 2/2 files (100.00%) diff --git a/tests/test-issue672.t b/tests/test-issue672.t --- a/tests/test-issue672.t +++ b/tests/test-issue672.t @@ -66,7 +66,7 @@ http://mercurial.selenic.com/bts/issue67 overwrite: False, partial: False ancestor: c64f439569a9, local: e327dca35ac8+, remote: 746e9549ea96 1a: local copied/moved to 1 -> m - preserving 1a for resolve of 1a + preserving 1a for resolve of 1a updating: 1a 1/1 files (100.00%) picked tool 'internal:merge' for 1a (binary False symlink False) merging 1a and 1 to 1a @@ -89,7 +89,7 @@ http://mercurial.selenic.com/bts/issue67 overwrite: False, partial: False ancestor: c64f439569a9, local: 746e9549ea96+, remote: e327dca35ac8 1: remote moved to 1a -> m - preserving 1 for resolve of 1a + preserving 1 for resolve of 1a removing 1 updating: 1 1/1 files (100.00%) picked tool 'internal:merge' for 1a (binary False symlink False) diff --git a/tests/test-merge-commit.t b/tests/test-merge-commit.t --- a/tests/test-merge-commit.t +++ b/tests/test-merge-commit.t @@ -72,7 +72,7 @@ This should use bar@rev2 as the ancestor overwrite: False, partial: False ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28 bar: versions differ -> m - preserving bar for resolve of bar + preserving bar for resolve of bar updating: bar 1/1 files (100.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging bar @@ -159,7 +159,7 @@ This should use bar@rev2 as the ancestor overwrite: False, partial: False ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0 bar: versions differ -> m - preserving bar for resolve of bar + preserving bar for resolve of bar updating: bar 1/1 files (100.00%) picked tool 'internal:merge' for bar (binary False symlink False) merging bar diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t --- a/tests/test-merge-types.t +++ b/tests/test-merge-types.t @@ -35,7 +35,7 @@ Symlink is local parent, executable is o overwrite: False, partial: False ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c a: versions differ -> m - preserving a for resolve of a + preserving a for resolve of a updating: a 1/1 files (100.00%) picked tool 'internal:merge' for a (binary False symlink True) merging a @@ -68,7 +68,7 @@ Symlink is other parent, executable is l overwrite: False, partial: False ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f a: versions differ -> m - preserving a for resolve of a + preserving a for resolve of a updating: a 1/1 files (100.00%) picked tool 'internal:merge' for a (binary False symlink True) merging a @@ -102,7 +102,7 @@ Update to link with local change should overwrite: False, partial: False ancestor: c334dc3be0da, local: c334dc3be0da+, remote: 521a1e40188f a: versions differ -> m - preserving a for resolve of a + preserving a for resolve of a updating: a 1/1 files (100.00%) (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re) picked tool 'internal:prompt' for a (binary False symlink True) diff --git a/tests/test-merge7.t b/tests/test-merge7.t --- a/tests/test-merge7.t +++ b/tests/test-merge7.t @@ -84,7 +84,7 @@ pull and merge from test-a again overwrite: False, partial: False ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8 test.txt: versions differ -> m - preserving test.txt for resolve of test.txt + preserving test.txt for resolve of test.txt updating: test.txt 1/1 files (100.00%) picked tool 'internal:merge' for test.txt (binary False symlink False) merging test.txt diff --git a/tests/test-rename-merge1.t b/tests/test-rename-merge1.t --- a/tests/test-rename-merge1.t +++ b/tests/test-rename-merge1.t @@ -33,13 +33,13 @@ src: 'a2' -> dst: 'b2' ! src: 'a2' -> dst: 'c2' ! checking for directory renames - a2: divergent renames -> dr resolving manifests overwrite: False, partial: False ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c a: remote moved to b -> m + preserving a for resolve of b + a2: divergent renames -> dr b2: remote created -> g - preserving a for resolve of b removing a updating: a 1/3 files (33.33%) picked tool 'internal:merge' for b (binary False symlink False) @@ -178,10 +178,10 @@ Check for issue3074 all copies found (* = to merge, ! = divergent, % = renamed and deleted): src: 'file' -> dst: 'newfile' % checking for directory renames - file: rename and delete -> rd resolving manifests overwrite: False, partial: False ancestor: 19d7f95df299, local: 0084274f6b67+, remote: 5d32493049f0 + file: rename and delete -> rd newfile: remote created -> g updating: file 1/2 files (50.00%) note: possible conflict - file was deleted and renamed to: diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t --- a/tests/test-rename-merge2.t +++ b/tests/test-rename-merge2.t @@ -86,10 +86,10 @@ args: resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24 + a: remote copied to b -> m + preserving a for resolve of b rev: versions differ -> m - a: remote copied to b -> m - preserving a for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging a and b to b @@ -123,9 +123,9 @@ args: ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71 a: remote is newer -> g b: local copied/moved to a -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) getting a updating: b 2/3 files (66.67%) @@ -159,10 +159,10 @@ args: resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a + a: remote moved to b -> m + preserving a for resolve of b rev: versions differ -> m - a: remote moved to b -> m - preserving a for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev removing a updating: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) @@ -195,9 +195,9 @@ args: overwrite: False, partial: False ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71 b: local copied/moved to a -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b @@ -228,9 +228,9 @@ args: resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24 + b: remote created -> g rev: versions differ -> m - b: remote created -> g - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) getting b updating: rev 2/2 files (100.00%) @@ -259,7 +259,7 @@ args: overwrite: False, partial: False ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336 rev: versions differ -> m - preserving rev for resolve of rev + preserving rev for resolve of rev updating: rev 1/1 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev @@ -286,9 +286,9 @@ args: overwrite: False, partial: False ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a a: other deleted -> r + b: remote created -> g rev: versions differ -> m - b: remote created -> g - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) removing a updating: b 2/3 files (66.67%) @@ -318,7 +318,7 @@ args: overwrite: False, partial: False ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336 rev: versions differ -> m - preserving rev for resolve of rev + preserving rev for resolve of rev updating: rev 1/1 files (100.00%) picked tool 'python ../merge' for rev (binary False symlink False) merging rev @@ -339,9 +339,9 @@ args: overwrite: False, partial: False ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493 b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b @@ -373,13 +373,13 @@ m "um a c" "um x c" " " "10 do merg src: 'a' -> dst: 'b' ! src: 'a' -> dst: 'c' ! checking for directory renames - a: divergent renames -> dr resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e - rev: versions differ -> m + a: divergent renames -> dr c: remote created -> g - preserving rev for resolve of rev + rev: versions differ -> m + preserving rev for resolve of rev updating: a 1/3 files (33.33%) note: possible conflict - a was renamed multiple times to: b @@ -407,9 +407,9 @@ m "um a c" "um x c" " " "10 do merg overwrite: False, partial: False ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7 b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b @@ -436,9 +436,9 @@ m "um a c" "um x c" " " "10 do merg ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a a: other deleted -> r b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) removing a updating: b 2/3 files (66.67%) @@ -466,9 +466,9 @@ m "um a c" "um x c" " " "10 do merg ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a a: remote is newer -> g b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) getting a updating: b 2/3 files (66.67%) @@ -497,9 +497,9 @@ m "um a c" "um x c" " " "10 do merg ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a a: other deleted -> r b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) removing a updating: b 2/3 files (66.67%) @@ -527,9 +527,9 @@ m "um a c" "um x c" " " "10 do merg ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a a: remote is newer -> g b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: a 1/3 files (33.33%) getting a updating: b 2/3 files (66.67%) @@ -557,9 +557,9 @@ m "um a c" "um x c" " " "10 do merg overwrite: False, partial: False ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24 b: versions differ -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b @@ -584,13 +584,13 @@ m "um a c" "um x c" " " "10 do merg resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a - b: versions differ -> m - rev: versions differ -> m remote changed a which local deleted use (c)hanged version or leave (d)eleted? c a: prompt recreating -> g - preserving b for resolve of b - preserving rev for resolve of rev + b: versions differ -> m + preserving b for resolve of b + rev: versions differ -> m + preserving rev for resolve of rev updating: a 1/3 files (33.33%) getting a updating: b 2/3 files (66.67%) @@ -617,13 +617,13 @@ m "um a c" "um x c" " " "10 do merg resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a - b: versions differ -> m - rev: versions differ -> m local changed a which remote deleted use (c)hanged version or (d)elete? c a: prompt keep -> a - preserving b for resolve of b - preserving rev for resolve of rev + b: versions differ -> m + preserving b for resolve of b + rev: versions differ -> m + preserving rev for resolve of rev updating: a 1/3 files (33.33%) updating: b 2/3 files (66.67%) picked tool 'python ../merge' for b (binary False symlink False) @@ -654,10 +654,10 @@ m "um a c" "um x c" " " "10 do merg resolving manifests overwrite: False, partial: False ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493 + a: remote moved to b -> m + preserving a for resolve of b rev: versions differ -> m - a: remote moved to b -> m - preserving a for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev removing a updating: a 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) @@ -689,9 +689,9 @@ m "um a c" "um x c" " " "10 do merg overwrite: False, partial: False ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71 b: local copied/moved to a -> m + preserving b for resolve of b rev: versions differ -> m - preserving b for resolve of b - preserving rev for resolve of rev + preserving rev for resolve of rev updating: b 1/2 files (50.00%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b @@ -727,10 +727,10 @@ m "nm a b" "um x a" " " "22 get a, overwrite: False, partial: False ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f b: local copied/moved to a -> m - rev: versions differ -> m + preserving b for resolve of b c: remote created -> g - preserving b for resolve of b - preserving rev for resolve of rev + rev: versions differ -> m + preserving rev for resolve of rev updating: b 1/3 files (33.33%) picked tool 'python ../merge' for b (binary False symlink False) merging b and a to b diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -244,7 +244,7 @@ merge tests overwrite: False, partial: False ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 t: versions differ -> m - preserving t for resolve of t + preserving t for resolve of t updating: t 1/1 files (100.00%) picked tool 'internal:merge' for t (binary False symlink False) merging t diff --git a/tests/test-up-local-change.t b/tests/test-up-local-change.t --- a/tests/test-up-local-change.t +++ b/tests/test-up-local-change.t @@ -47,8 +47,8 @@ overwrite: False, partial: False ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb a: versions differ -> m + preserving a for resolve of a b: remote created -> g - preserving a for resolve of a updating: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a @@ -67,9 +67,9 @@ resolving manifests overwrite: False, partial: False ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a + b: other deleted -> r a: versions differ -> m - b: other deleted -> r - preserving a for resolve of a + preserving a for resolve of a updating: b 1/2 files (50.00%) removing b updating: a 2/2 files (100.00%) @@ -101,8 +101,8 @@ overwrite: False, partial: False ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb a: versions differ -> m + preserving a for resolve of a b: remote created -> g - preserving a for resolve of a updating: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a @@ -179,9 +179,9 @@ create a second head overwrite: False, partial: False ancestor: c19d34741b0a, local: 1e71731e6fbb+, remote: 83c51d0caff4 a: versions differ -> m + preserving a for resolve of a b: versions differ -> m - preserving a for resolve of a - preserving b for resolve of b + preserving b for resolve of b updating: a 1/2 files (50.00%) picked tool 'true' for a (binary False symlink False) merging a