Re: [PATCH v4] mergetools: add winmerge as a builtin tool
David Aguilar writes: > On Wed, May 20, 2015 at 09:47:56AM +0200, Sebastian Schuberth wrote: >> On Wed, May 20, 2015 at 9:42 AM, David Aguilar wrote: >> >> > + OIFS=$IFS >> > + IFS=' >> > +' >> >> I guess this is just a formatting issue with the mail export as it should >> read >> >> IFS=$'\n' >> >> Otherwise looks good to me. >> >> -- >> Sebastian Schuberth > > Thanks for the review. > > That's actually a literal newline inside a single-quoted string. > > I'm not sure how portable $'\n' is, but the '' > approach is used often in the git code. Thanks for being observant ;-) Unless it is contrib/completion that is known to be run with bash, please avoid $'string' and $"string". -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v4] mergetools: add winmerge as a builtin tool
On Wed, May 20, 2015 at 9:42 AM, David Aguilar wrote: > + OIFS=$IFS > + IFS=' > +' I guess this is just a formatting issue with the mail export as it should read IFS=$'\n' Otherwise looks good to me. -- Sebastian Schuberth -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v4] mergetools: add winmerge as a builtin tool
Add a winmerge scriptlet with the commands described in [1] so that users can use winmerge without needing to perform any additional configuration. [1] http://thread.gmane.org/gmane.comp.version-control.git/268631 Helped-by: Philip Oakley Helped-by: Johannes Schindelin Helped-by: Sebastian Schuberth Helped-by: SZEDER Gábor Signed-off-by: David Aguilar --- Changes since v3: * "type -p" is used instead of "type". * printf is consistently used instead of echo. * an env | grep pipeline is used to get the variables instead of hard-coding a set of variables in the script, as suggested by Sebastian in http://thread.gmane.org/gmane.comp.version-control.git/269437/focus=269441 mergetools/winmerge | 45 + 1 file changed, 45 insertions(+) create mode 100644 mergetools/winmerge diff --git a/mergetools/winmerge b/mergetools/winmerge new file mode 100644 index 000..fc364c769 --- /dev/null +++ b/mergetools/winmerge @@ -0,0 +1,45 @@ +diff_cmd () { + "$merge_tool_path" -u -e "$LOCAL" "$REMOTE" + return 0 +} + +merge_cmd () { + # mergetool.winmerge.trustExitCode is implicitly false. + # touch $BACKUP so that we can check_unchanged. + touch "$BACKUP" + "$merge_tool_path" -u -e -dl Local -dr Remote \ + "$LOCAL" "$REMOTE" "$MERGED" + check_unchanged +} + +translate_merge_tool_path() { + # Use WinMergeU.exe if it exists in $PATH + if type -p WinMergeU.exe >/dev/null 2>&1 + then + printf WinMergeU.exe + return + fi + + # Look for WinMergeU.exe in the typical locations + winmerge_exe="WinMerge/WinMergeU.exe" + found=false + OIFS=$IFS + IFS=' +' + for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' | + cut -d '=' -f 2- | sort -u) + do + if test -n "$directory" && test -x "$directory/$winmerge_exe" + then + found=true + printf '%s' "$directory/$winmerge_exe" + break + fi + done + IFS=$OIFS + + if test "$found" != true + then + printf WinMergeU.exe + fi +} -- 2.4.1.218.gc09a0e5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html