From: Charles Bailey <charles@hashpling.org>
To: David Aguilar <davvid@gmail.com>
Cc: gitster@pobox.com, git@vger.kernel.org, markus.heidelberg@web.de
Subject: Re: [PATCH v6 14/14] difftool/mergetool: refactor commands to use git-mergetool--lib
Date: Sat, 11 Apr 2009 13:00:40 +0100 [thread overview]
Message-ID: <20090411120040.GA10381@hashpling.org> (raw)
In-Reply-To: <1239175040-28974-1-git-send-email-davvid@gmail.com>
On Wed, Apr 08, 2009 at 12:17:20AM -0700, David Aguilar wrote:
Finally, I've got around to some git work...
> diff --git a/Documentation/git-mergetool--lib.txt
> b/Documentation/git-mergetool--lib.txt
> new file mode 100644
> index 0000000..3d57031
> --- /dev/null
> +++ b/Documentation/git-mergetool--lib.txt
--- snip ---
> +
> +run_merge_tool::
> + launches a merge tool given the tool name and a true/false
> + flag to indicate whether a merge base is present.
> + '$merge_tool', '$merge_tool_path', and for custom commands,
> + '$merge_tool_cmd', must be defined prior to calling
> + run_merge_tool. Additionally, '$MERGED', '$LOCAL', '$REMOTE',
> + and '$BASE' must be defined for use by the merge tool.
Reading this function it doesn't look like the variable $merge_tool is
actually used, only the first parameter which should be the same
thing. Also, TOOL_MODE is used and is important so should probably be
documented here instead.
> diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
> new file mode 100644
> index 0000000..c5db24e
> --- /dev/null
> +++ b/git-mergetool--lib.sh
--- snip ---
> +get_merge_tool_path () {
> + # A merge tool has been set, so verify that it's valid.
> + if ! valid_tool "$merge_tool"; then
> + echo >&2 "Unknown merge tool $merge_tool"
> + exit 1
> + fi
> + if diff_mode; then
> + merge_tool_path=$(git config difftool."$merge_tool".path)
> + fi
> + if test -z "$merge_tool_path"; then
> + merge_tool_path=$(git config mergetool."$merge_tool".path)
> + fi
> + merge_tool_path="$(translate_merge_tool_path "$merge_tool" "$merge_tool_path")"
> + if test -z "$merge_tool_cmd" && ! type "$merge_tool_path" > /dev/null 2>&1; then
> + echo >&2 "The $TOOL_MODE tool $merge_tool is not available as '$merge_tool_path'"
> + exit 1
> + fi
> + echo "$merge_tool_path"
> +}
I just wanted to double check that we supported finding tools in the
path with merge.$tool.path unset (it should just work), so I had a
quick play and got some really wierd results. Please tell me if just
sourcing git-mergetool--lib isn't just going to work.
>From a non-X session:
$ git config -l | grep 'merge\.\?tool'; get_merge_tool; get_merge_tool_path
mergetool.p4merge.cmd=echo /"$BASE"/ /"$REMOTE"/ /"$LOCAL"/ /"$MERGED"/
merge tool candidates: kompare emerge vimdiff
vimdiff
vim
>From an X session:
mergetool.p4merge.cmd=echo /"$BASE"/ /"$REMOTE"/ /"$LOCAL"/ /"$MERGED"/
merge tool candidates: meld opendiff kdiff3 tkdiff xxdiff kompare gvimdiff diffuse ecmerge emerge vimdiff
kdiff3
vim
I'm not quite sure what's going on here.
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index cceebb7..efa31a2 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
--- big snip to: @@ merge_file () {
> + present=false
> + base_present &&
> + present=true
I'm not sure why, but from a style point of view, this seemed a bit
inconsistent from the rest of mergetool and grated with me a bit.
I think I'd prefer
if base_present; then
present=false
else
present=true
fi
or even:
present=$(base_present && echo true || echo false)
Really, really minor stlye point, though.
--
Charles Bailey
http://ccgi.hashpling.plus.com/blog/
next prev parent reply other threads:[~2009-04-11 12:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-08 7:17 [PATCH v6 14/14] difftool/mergetool: refactor commands to use git-mergetool--lib David Aguilar
2009-04-11 12:00 ` Charles Bailey [this message]
2009-04-11 12:10 ` Charles Bailey
2009-04-12 3:41 ` David Aguilar
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=20090411120040.GA10381@hashpling.org \
--to=charles@hashpling.org \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=markus.heidelberg@web.de \
/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.