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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).