[PATCH] Allow the user to change the temporary file name for mergetool
From: Robin Rosenberg <hidden>
Date: 2016-06-15 23:02:17
Using the original filename suffix for the temporary input files to the merge tool confuses IDEs like Eclipse. This patch introduces a configurtion option, mergetool.tmpsuffix, which get appended to the temporary file name. That way the user can choose to use a suffix like ".tmp", which does not cause confusion. Signed-off-by: Robin Rosenberg <redacted> --- Documentation/git-mergetool.txt | 7 +++++++ git-mergetool.sh | 10 ++++++---- 2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index e846c2e..a586766 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt@@ -89,6 +89,13 @@ Setting the `mergetool.keepBackup` configuration variable to `false` causes `git mergetool` to automatically remove the backup as files are successfully merged. +`git mergetool` may also create other temporary files for the +different versions involved in the merge. By default these files have +the same filename suffix as the file being merged. This may confuse +other tools in use during a long merge operation. The user can set +`mergtool.tmpsuffix` to be used as an extra suffix, which will be +appened to the temporary filenamame to lessen that problem. + GIT --- Part of the linkgit:git[1] suite
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 9a046b7..d7cc76c 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh@@ -214,6 +214,8 @@ checkout_staged_file () { } merge_file () { + tmpsuffix=$(git config mergetool.tmpsuffix || true) + MERGED="$1" f=$(git ls-files -u -- "$MERGED")
@@ -229,10 +231,10 @@ merge_file () { fi ext="$$$(expr "$MERGED" : '.*\(\.[^/]*\)$')" - BACKUP="./$MERGED.BACKUP.$ext" - LOCAL="./$MERGED.LOCAL.$ext" - REMOTE="./$MERGED.REMOTE.$ext" - BASE="./$MERGED.BASE.$ext" + BACKUP="./$MERGED.BACKUP.$ext$tmpsuffix" + LOCAL="./$MERGED.LOCAL.$ext$tmpsuffix" + REMOTE="./$MERGED.REMOTE.$ext$tmpsuffix" + BASE="./$MERGED.BASE.$ext$tmpsuffix" base_mode=$(git ls-files -u -- "$MERGED" | awk '{if ($3==1) print $1;}') local_mode=$(git ls-files -u -- "$MERGED" | awk '{if ($3==2) print $1;}')
--
2.1.0.rc2.6.g39c33ff.dirty