git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Feature Request: user defined suffix for temp files created by git-mergetool

From
JRJosef Ridky <jridky@redhat.com>
Date
Oct 5, 2016, 07:47 UTC
Message-ID
<1499287628.1324571.1475653631366.JavaMail.zimbra@redhat.com>
In-Reply-To
<1329039097.128066.1475476591437.JavaMail.zimbra@redhat.com>
Hi, 

I have just realize, that my attachment has been cut off from my previous message. Below you can find patch with requested change.

Add support for user defined suffix part of name of temporary files
created by git mergetool
---
 Documentation/git-mergetool.txt | 26 ++++++++++++++++++++-
 git-mergetool.sh                | 52 +++++++++++++++++++++++++++++++++++++----
 2 files changed, 72 insertions(+), 6 deletions(-)
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index e846c2e..6cf5935 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -8,7 +8,7 @@ git-mergetool - Run merge conflict resolution tools to resolve merge conflicts
 SYNOPSIS
 --------
 [verse]
-'git mergetool' [--tool=<tool>] [-y | --[no-]prompt] [<file>...]
+'git mergetool' [--tool=<tool>] [-y | --[no-]prompt] [--local=<name>] [--remote=<name>] [--backup=<name>] [--base=<name>] [<file>...]
 
 DESCRIPTION
 -----------
@@ -79,6 +79,30 @@ success of the resolution after the custom tool has exited.
 	Prompt before each invocation of the merge resolution program
 	to give the user a chance to skip the path.
 
+--local=<name>::
+	Use string from <name> as part of suffix of name of temporary
+	file (local) for merging. If not used or is equal with any
+	other (remote|backup|base), default value is used.
+	Default suffix is LOCAL.
+
+--remote=<name>::
+	Use string from <name> as part of suffix of name of temporary
+	file (remote) for merging. If not used or is equal with any
+	other (local|backup|base), default value is used.
+	Default suffix is REMOTE.
+
+--backup=<name>::
+	Use string from <name> as part of suffix of name of temporary
+	file (backup) for merging. If not used or is equal with any
+	other (local|remote|base), default value is used.
+	Default suffix is BACKUP.
+
+--base=<name>::
+	Use string from <name> as part of suffix of name of temporary
+	file (base) for merging. If not used or is equal with any
+	other (local|remote|backup), default value is used.
+	Default suffix is BASE.
+
 TEMPORARY FILES
 ---------------
 `git mergetool` creates `*.orig` backup files while resolving merges.
diff --git a/git-mergetool.sh b/git-mergetool.sh
index bf86270..e3433ee 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -8,11 +8,18 @@
 # at the discretion of Junio C Hamano.
 #
 
-USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [file to merge] ...'
+USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [--local=name] [--remote=name] [--backup=name] [--base=name] [file to merge] ...'
 SUBDIRECTORY_OK=Yes
 NONGIT_OK=Yes
 OPTIONS_SPEC=
 TOOL_MODE=merge
+
+#optional name space convention
+local_name=""
+remote_name=""
+base_name=""
+backup_name=""
+
 . git-sh-setup
 . git-mergetool--lib
 
@@ -271,10 +278,33 @@ merge_file () {
 		BASE=${BASE##*/}
 	fi
 
-	BACKUP="$MERGETOOL_TMPDIR/${BASE}_BACKUP_$$$ext"
-	LOCAL="$MERGETOOL_TMPDIR/${BASE}_LOCAL_$$$ext"
-	REMOTE="$MERGETOOL_TMPDIR/${BASE}_REMOTE_$$$ext"
-	BASE="$MERGETOOL_TMPDIR/${BASE}_BASE_$$$ext"
+	if [ "$local_name" != "" ]  && [ "$local_name" != "$remote_name" ] && [ "$local_name" != "$backup_name" ] && [ "$local_name" != "$base_name" ]
+	then
+		LOCAL="$MERGETOOL_TMPDIR/${BASE}_${local_name}_$$$ext"
+	else
+		LOCAL="$MERGETOOL_TMPDIR/${BASE}_LOCAL_$$$ext"
+	fi
+
+	if [ "$remote_name" != "" ] && [ "$remote_name" != "$local_name" ] && [ "$remote_name" != "$backup_name" ] && [ "$remote_name" != "$base_name" ]
+	then
+		REMOTE="$MERGETOOL_TMPDIR/${BASE}_${remote_name}_$$$ext"
+	else
+		REMOTE="$MERGETOOL_TMPDIR/${BASE}_REMOTE_$$$ext"
+	fi
+
+	if [ "$backup_name" != "" ] && [ "$backup_name" != "$local_name" ] && [ "$backup_name" != "$remote_name" ] && [ "$backup_name" != "$base_name" ]
+	then
+		BACKUP="$MERGETOOL_TMPDIR/${BASE}_${backup_name}_$$$ext"
+	else
+		BACKUP="$MERGETOOL_TMPDIR/${BASE}_BACKUP_$$$ext"
+	fi
+
+	if [ "$base_name" != "" ] && [ "$base_name" != "$local_name" ] && [ "$base_name" != "$remote_name" ] && [ "$base_name" != "$backup_name" ]
+	then
+		BASE="$MERGETOOL_TMPDIR/${BASE}_${base_name}_$$$ext"
+	else
+		BASE="$MERGETOOL_TMPDIR/${BASE}_BASE_$$$ext"
+	fi
 
 	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;}')
@@ -396,6 +426,18 @@ do
 	--prompt)
 		prompt=true
 		;;
+	--local=*)
+		local_name=${1#--local=}
+		;;
+	--remote=*)
+		remote_name=${1#--remote=}
+		;;
+	--base=*)
+		base_name=${1#--base=}
+		;;
+	--backup=*)
+		backup_name=${1#--backup=}
+		;;
 	--)
 		shift
 		break
-- 
2.7.4
Previous: Josef RidkyNext: Junio C Hamano
Message 6 of 19 in “Feature Request: user defined suffix for temp files created by git-mergetool”
  1. Josef RidkyOct 3, 2016
  2. Anatoly BorodinOct 3, 2016
  3. Josef RidkyOct 4, 2016
  4. David AguilarOct 5, 2016
  5. Josef RidkyOct 5, 2016
  6. Josef RidkyOct 5, 2016
  7. Junio C HamanoOct 5, 2016
  8. Josef RidkyOct 6, 2016
  9. Johannes SixtOct 5, 2016
  10. Josef RidkyOct 6, 2016
  11. 1/2 Feature Request: user defined suffix for temp files created by git-mergetoolJosef Ridky, Oct 6, 2016
  12. 2/2 Feature Request: user defined suffix for temp files created by git-mergetoolJosef Ridky, Oct 6, 2016
  13. Junio C HamanoOct 6, 2016
  14. Josef RidkyOct 12, 2016
  15. Junio C HamanoOct 12, 2016
  16. David AguilarOct 13, 2016
  17. David AguilarOct 13, 2016
  18. Junio C HamanoOct 6, 2016
  19. Junio C HamanoOct 6, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.