Browse Source

merge-recursive: Only print relevant rename messages

It isn't really interesting to know about the renames that have
already been committed to the branch you are working on. Furthermore,
the 'git-apply --stat' at the end of git-(merge|pull) will tell us
about any renames in the other branch.

With this commit only renames which require a file-level merge will
be printed.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Fredrik Kuivinen 19 years ago committed by Junio C Hamano
parent
commit
d1745afa2f
  1. 22
      git-merge-recursive.py

22
git-merge-recursive.py

@ -162,10 +162,13 @@ def mergeTrees(head, merge, common, branch1Name, branch2Name):
# Low level file merging, update and removal # Low level file merging, update and removal
# ------------------------------------------ # ------------------------------------------


MERGE_NONE = 0
MERGE_TRIVIAL = 1
MERGE_3WAY = 2
def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode, def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode,
branch1Name, branch2Name): branch1Name, branch2Name):


merge = False merge = MERGE_NONE
clean = True clean = True


if stat.S_IFMT(aMode) != stat.S_IFMT(bMode): if stat.S_IFMT(aMode) != stat.S_IFMT(bMode):
@ -178,7 +181,7 @@ def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode,
sha = bSha sha = bSha
else: else:
if aSha != oSha and bSha != oSha: if aSha != oSha and bSha != oSha:
merge = True merge = MERGE_TRIVIAL


if aMode == oMode: if aMode == oMode:
mode = bMode mode = bMode
@ -207,7 +210,8 @@ def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode,
os.unlink(orig) os.unlink(orig)
os.unlink(src1) os.unlink(src1)
os.unlink(src2) os.unlink(src2)

merge = MERGE_3WAY
clean = (code == 0) clean = (code == 0)
else: else:
assert(stat.S_ISLNK(aMode) and stat.S_ISLNK(bMode)) assert(stat.S_ISLNK(aMode) and stat.S_ISLNK(bMode))
@ -577,14 +581,16 @@ def processRenames(renamesA, renamesB, branchNameA, branchNameB):
updateFile(False, ren1.dstSha, ren1.dstMode, dstName1) updateFile(False, ren1.dstSha, ren1.dstMode, dstName1)
updateFile(False, ren2.dstSha, ren2.dstMode, dstName2) updateFile(False, ren2.dstSha, ren2.dstMode, dstName2)
else: else:
print 'Renaming', fmtRename(path, ren1.dstName)
[resSha, resMode, clean, merge] = \ [resSha, resMode, clean, merge] = \
mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode, mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode,
ren1.dstName, ren1.dstSha, ren1.dstMode, ren1.dstName, ren1.dstSha, ren1.dstMode,
ren2.dstName, ren2.dstSha, ren2.dstMode, ren2.dstName, ren2.dstSha, ren2.dstMode,
branchName1, branchName2) branchName1, branchName2)


if merge: if merge or not clean:
print 'Renaming', fmtRename(path, ren1.dstName)

if merge == MERGE_3WAY:
print 'Auto-merging', ren1.dstName print 'Auto-merging', ren1.dstName


if not clean: if not clean:
@ -653,14 +659,16 @@ def processRenames(renamesA, renamesB, branchNameA, branchNameB):
tryMerge = True tryMerge = True


if tryMerge: if tryMerge:
print 'Renaming', fmtRename(ren1.srcName, ren1.dstName)
[resSha, resMode, clean, merge] = \ [resSha, resMode, clean, merge] = \
mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode, mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode,
ren1.dstName, ren1.dstSha, ren1.dstMode, ren1.dstName, ren1.dstSha, ren1.dstMode,
ren1.srcName, srcShaOtherBranch, srcModeOtherBranch, ren1.srcName, srcShaOtherBranch, srcModeOtherBranch,
branchName1, branchName2) branchName1, branchName2)


if merge: if merge or not clean:
print 'Renaming', fmtRename(ren1.srcName, ren1.dstName)

if merge == MERGE_3WAY:
print 'Auto-merging', ren1.dstName print 'Auto-merging', ren1.dstName


if not clean: if not clean:

Loading…
Cancel
Save