merge: show list of bids for each file in bid-merge in ui.debug()
Earlier, we were showing the list of bids only when we were ambiguously picking.
However, the cases where we unambiguously picked a side may not always be
correct and need to be fixed.
Having list of bids for all files will be helpful in debugging.
Differential Revision: https://phab.mercurial-scm.org/D8966
--- a/mercurial/merge.py Mon Sep 14 19:39:51 2020 +0900
+++ b/mercurial/merge.py Wed Aug 26 17:20:53 2020 +0530
@@ -1157,6 +1157,11 @@
)
mresult = mergeresult()
for f, bids in sorted(fbids.items()):
+ if repo.ui.debugflag:
+ repo.ui.debug(b" list of bids for %s:\n" % f)
+ for m, l in sorted(bids.items()):
+ for _f, args, msg in l:
+ repo.ui.debug(b' %s -> %s\n' % (msg, m))
# bids is a mapping from action method to list af actions
# Consensus?
if len(bids) == 1: # all bids are the same kind of method
--- a/tests/test-merge-criss-cross.t Mon Sep 14 19:39:51 2020 +0900
+++ b/tests/test-merge-criss-cross.t Wed Aug 26 17:20:53 2020 +0530
@@ -150,7 +150,13 @@
f2: remote unchanged -> k
auction for merging merge bids (2 ancestors)
+ list of bids for f1:
+ remote is newer -> g
+ versions differ -> m
f1: picking 'get' action
+ list of bids for f2:
+ remote unchanged -> k
+ versions differ -> m
f2: picking 'keep' action
end of auction
@@ -193,7 +199,13 @@
f2: remote is newer -> g
auction for merging merge bids (2 ancestors)
+ list of bids for f1:
+ remote unchanged -> k
+ versions differ -> m
f1: picking 'keep' action
+ list of bids for f2:
+ remote is newer -> g
+ versions differ -> m
f2: picking 'get' action
end of auction
@@ -258,7 +270,13 @@
f2: remote unchanged -> k
auction for merging merge bids (2 ancestors)
+ list of bids for f1:
+ remote is newer -> g
+ versions differ -> m
f1: picking 'get' action
+ list of bids for f2:
+ remote unchanged -> k
+ versions differ -> m
f2: picking 'keep' action
end of auction
@@ -431,8 +449,15 @@
d2/b: remote created -> g
auction for merging merge bids (2 ancestors)
+ list of bids for d1/a:
+ other deleted -> r
d1/a: consensus for r
+ list of bids for d1/b:
+ other deleted -> r
d1/b: consensus for r
+ list of bids for d2/b:
+ remote created -> g
+ remote created -> g
d2/b: consensus for g
end of auction