From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Steffen Prohaska <prohaska@zib.de>
Cc: tytso@mit.edu, frank@lichtenheld.de, git@vger.kernel.org
Subject: Re: [PATCH v2] mergetool: support setting path to tool as config var mergetool.<tool>.path
Date: Wed, 10 Oct 2007 18:03:56 +0100 (BST) [thread overview]
Message-ID: <Pine.LNX.4.64.0710101759080.4174@racer.site> (raw)
In-Reply-To: <FBE79360-4B3A-4C92-B8AA-76989D933009@zib.de>
Hi,
On Wed, 10 Oct 2007, Steffen Prohaska wrote:
> On Oct 10, 2007, at 4:33 PM, Johannes Schindelin wrote:
>
> > On Tue, 9 Oct 2007, Steffen Prohaska wrote:
> >
> > > This commit adds a mechanism to provide absolute paths to the
> > > external programs called by 'git mergetool'. A path can be specified
> > > in the configuation variable mergetool.<tool>.path. The
> > > configuration variable is similar to how we name branches and
> > > remotes. It is extensible if we need to specify more details about a
> > > tool.
> >
> > Okay, let's step back a bit.
> >
> > What does mergetool do? It calls different merge helpers, each with its
> > own convention how to call it. For example, tkdiff is called either as
> >
> > tkdiff -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE"
> >
> > or as
> >
> > tkdiff -o "$path" -- "$LOCAL" "$REMOTE"
> >
> > depending if there is a base or not. Another example is gvimdiff:
> >
> > gvimdiff -f -- "$LOCAL" "$path" "$REMOTE"
> >
> > which seems not to care if there is a base.
> >
> > Now, would it not be much better if we had a way to specify the tool
> > and the convention indepentently? Like
> >
> > merge.tkdiff.path = C:\bla\blub\wish.exe C:\blub\bleh\tkdiff.tcl
> > merge.tkdiff.options = -o %p -- %l %r
> > merge.tkdiff.optionsWithBase = -a %b -o %p -- %l %r
> >
> > and have defaults for the tools we have in git-mergetool.sh _already_?
>
> If you provide a generic mechanism to call an external tool, there's no
> need to name the tool. A single mechanism (let's call it external) would
> be sufficient, like
>
> mergetool.external.path = c:\any\path\merge.exe
> mergetool.external.arg2way = %l %r --merge2 --to=%p
> mergetool.external.arg3way = %b %l %r --merge3 --to=%p
>
> But this places the burdon on the user to figure out the command line syntax
> and specify it correctly using git-config.
Guess why I did not want to have a single mechanism. I did _not_ propose
to place the burden on the user to figure out the command line.
Besides, I do not want to do away with the automatic detection of the
tool, which _implies_ having a list of defaults for the command line
syntax, which in turn _commands_ having the name instead of "external".
While your solution is an obvious short term fix, I maintain that my
proposal is the Right Thing in the long run.
Ciao,
Dscho
next prev parent reply other threads:[~2007-10-10 17:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-09 20:54 [PATCH v2] mergetool: support setting path to tool as config var mergetool.<tool>.path Steffen Prohaska
2007-10-10 14:33 ` Johannes Schindelin
2007-10-10 15:44 ` Steffen Prohaska
2007-10-10 17:03 ` Johannes Schindelin [this message]
2007-10-10 17:40 ` Steffen Prohaska
2007-10-14 12:52 ` Steffen Prohaska
2007-10-14 13:02 ` Theodore Tso
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=Pine.LNX.4.64.0710101759080.4174@racer.site \
--to=johannes.schindelin@gmx.de \
--cc=frank@lichtenheld.de \
--cc=git@vger.kernel.org \
--cc=prohaska@zib.de \
--cc=tytso@mit.edu \
/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).