From: David Aguilar <davvid@gmail.com>
To: Jacob Nisnevich <jacob.nisnevich@gmail.com>
Cc: gitster@pobox.com, git@vger.kernel.org
Subject: Re: [PATCH] mergetools: implemented new mergetool file for ExamDiff
Date: Thu, 24 Mar 2016 00:44:04 -0700 [thread overview]
Message-ID: <20160324074404.GA30574@gmail.com> (raw)
In-Reply-To: <1458773745-783-2-git-send-email-jacob.nisnevich@gmail.com>
On Wed, Mar 23, 2016 at 03:55:45PM -0700, Jacob Nisnevich wrote:
> Signed-off-by: Jacob Nisnevich <jacob.nisnevich@gmail.com>
> ---
Please write commit message in an imperative tone.
e.g. "mergetools: add support for ExamDiff" might be a good summary.
> mergetools/examdiff | 20 ++++++++++++++++++++
> mergetools/mergetools_helpers | 24 ++++++++++++++++++++++++
> mergetools/winmerge | 23 +++--------------------
> 3 files changed, 47 insertions(+), 20 deletions(-)
> create mode 100644 mergetools/examdiff
> create mode 100644 mergetools/mergetools_helpers
This patch is doing two things.
It's probably worth breaking this patch up into two parts.
Patch 1 can add add the new helper function and update
winmerge to use it.
Patch 2 can add the new examdiff helper.
> diff --git a/mergetools/examdiff b/mergetools/examdiff
> new file mode 100644
> index 0000000..c5edd0e
> --- /dev/null
> +++ b/mergetools/examdiff
> @@ -0,0 +1,20 @@
> +. "$MERGE_TOOLS_DIR/mergetools_helpers"
> +
> +diff_cmd () {
> + "$merge_tool_path" "$LOCAL" "$REMOTE" -nh
> +}
> +
> +merge_cmd () {
> + touch "$BACKUP"
> + if $base_present
> + then
> + "$merge_tool_path" -merge "$LOCAL" "$BASE" "$REMOTE" -o:"$MERGED" -nh
> + else
> + "$merge_tool_path" -merge "$LOCAL" "$REMOTE" -o:"$MERGED" -nh
> + fi
> + check_unchanged
> +}
> +
> +translate_merge_tool_path() {
> + mergetool_find_win32_cmd "ExamDiff.com" "ExamDiff Pro"
> +}
> diff --git a/mergetools/mergetools_helpers b/mergetools/mergetools_helpers
> new file mode 100644
> index 0000000..46ae2d8
> --- /dev/null
> +++ b/mergetools/mergetools_helpers
We can probably do this without introducing a new file. One
possible home for this is with the rest of the "default"
definitions of the functions in git-mergetool--lib.sh's
setup_tool() function.
But, that hints that we expect tools to override it.
A better place would be as a normal function inside
git-mergetool--lib.sh, which more strongly hints that we do not
expect tools to override mergetool_find_win32_cmd().
> @@ -0,0 +1,24 @@
> +mergetool_find_win32_cmd () {
> + executable=$1
> + folder=$2
> +
> + # Use executable.com if it exists in $PATH
> + if type -p $executable >/dev/null 2>&1
> + then
> + printf $executable
It might nut hurt to write this as,
printf '%s' "$executable"
For consistency and future-proofing.
> + return
> + fi
> +
> + # Look for executable in the typical locations
> + for directory in $(env | grep -Ei '^PROGRAM(FILES(\(X86\))?|W6432)=' |
> + cut -d '=' -f 2- | sort -u)
> + do
> + if test -n "$directory" && test -x "$directory/$folder/$executable"
> + then
> + printf '%s' "$directory/$folder/$executable"
> + return
> + fi
> + done
> +
> + printf $executable
> +}
> diff --git a/mergetools/winmerge b/mergetools/winmerge
> index 74a66d4..c785be8 100644
> --- a/mergetools/winmerge
> +++ b/mergetools/winmerge
> @@ -1,3 +1,5 @@
> +. "$MERGE_TOOLS_DIR/mergetools_helpers"
> +
If we move the definition into mergetool--lib then we do not
need to dot-include any files here -- it'll simply be present
and available.
> diff_cmd () {
> "$merge_tool_path" -u -e "$LOCAL" "$REMOTE"
> return 0
> @@ -13,24 +15,5 @@ merge_cmd () {
> }
>
> 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"
> - 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
> - printf '%s' "$directory/$winmerge_exe"
> - return
> - fi
> - done
> -
> - printf WinMergeU.exe
> + mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge"
> }
> --
> 1.9.1
>
--
David
next prev parent reply other threads:[~2016-03-24 7:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-20 4:58 [PATCH] mergetools: created new mergetool file for ExamDiff Jacob Nisnevich
2016-03-21 1:02 ` Junio C Hamano
2016-03-21 3:32 ` David Aguilar
2016-03-23 0:43 ` [PATCH 0/2] Helper function for ExamDiff and Winmerge mergetools Jacob Nisnevich
2016-03-23 0:43 ` [PATCH 1/2] mergetools: created new mergetool file for ExamDiff Jacob Nisnevich
2016-03-23 0:43 ` [PATCH 2/2] created helper function for both winmerge and examdiff mergetools Jacob Nisnevich
2016-03-23 2:41 ` Junio C Hamano
2016-03-23 22:55 ` [PATCH] mergetools: implemented new mergetool file for ExamDiff Jacob Nisnevich
2016-03-23 22:55 ` Jacob Nisnevich
2016-03-24 7:44 ` David Aguilar [this message]
2016-03-24 15:43 ` Junio C Hamano
2016-03-25 22:52 ` [PATCH 0/2] add support " Jacob Nisnevich
2016-03-25 22:52 ` [PATCH 1/2] mergetools: create mergetool_find_win32_cmd() helper function for winmerge Jacob Nisnevich
2016-03-25 23:00 ` Junio C Hamano
2016-03-25 23:17 ` [PATCH 0/2] mergetools: add support for ExamDiff Jacob Nisnevich
2016-03-25 23:17 ` [PATCH 1/2] mergetools: create mergetool_find_win32_cmd() helper function for winmerge Jacob Nisnevich
2016-03-25 23:17 ` [PATCH 2/2] mergetools: add support for ExamDiff Jacob Nisnevich
2016-04-01 18:10 ` [PATCH 0/2] " Junio C Hamano
2016-04-02 21:02 ` David Aguilar
2016-03-25 22:52 ` [PATCH 2/2] " Jacob Nisnevich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160324074404.GA30574@gmail.com \
--to=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob.nisnevich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.