summaryrefslogtreecommitdiff
path: root/git-merge-recursive.py
diff options
context:
space:
mode:
authorFredrik Kuivinen <freku045@student.liu.se>2005-11-08 00:19:44 +0100
committerJunio C Hamano <junkio@cox.net>2005-11-07 17:13:10 -0800
commitd1745afa2f062764b075300bda06aac1402dfcf6 (patch)
treea09a7bcec1d086d584d56b1747165d1c6576ef6f /git-merge-recursive.py
parent52963a7a3fad7f3da7b4ec49824d92338a2ab668 (diff)
downloadgit-d1745afa2f062764b075300bda06aac1402dfcf6.tar.gz
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>
Diffstat (limited to 'git-merge-recursive.py')
-rwxr-xr-xgit-merge-recursive.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/git-merge-recursive.py b/git-merge-recursive.py
index 626d85493a..9983cd9dee 100755
--- a/git-merge-recursive.py
+++ b/git-merge-recursive.py
@@ -162,10 +162,13 @@ def mergeTrees(head, merge, common, branch1Name, branch2Name):
# 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,
branch1Name, branch2Name):
- merge = False
+ merge = MERGE_NONE
clean = True
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
else:
if aSha != oSha and bSha != oSha:
- merge = True
+ merge = MERGE_TRIVIAL
if aMode == oMode:
mode = bMode
@@ -207,7 +210,8 @@ def mergeFile(oPath, oSha, oMode, aPath, aSha, aMode, bPath, bSha, bMode,
os.unlink(orig)
os.unlink(src1)
os.unlink(src2)
-
+
+ merge = MERGE_3WAY
clean = (code == 0)
else:
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, ren2.dstSha, ren2.dstMode, dstName2)
else:
- print 'Renaming', fmtRename(path, ren1.dstName)
[resSha, resMode, clean, merge] = \
mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode,
ren1.dstName, ren1.dstSha, ren1.dstMode,
ren2.dstName, ren2.dstSha, ren2.dstMode,
branchName1, branchName2)
- if merge:
+ if merge or not clean:
+ print 'Renaming', fmtRename(path, ren1.dstName)
+
+ if merge == MERGE_3WAY:
print 'Auto-merging', ren1.dstName
if not clean:
@@ -653,14 +659,16 @@ def processRenames(renamesA, renamesB, branchNameA, branchNameB):
tryMerge = True
if tryMerge:
- print 'Renaming', fmtRename(ren1.srcName, ren1.dstName)
[resSha, resMode, clean, merge] = \
mergeFile(ren1.srcName, ren1.srcSha, ren1.srcMode,
ren1.dstName, ren1.dstSha, ren1.dstMode,
ren1.srcName, srcShaOtherBranch, srcModeOtherBranch,
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
if not clean: