From: David Aguilar <davvid@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jay Soffian <jaysoffian@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH] mergetool--lib: add diffmerge as a pre-configured mergetool option
Date: Tue, 16 Aug 2011 03:09:52 -0700 [thread overview]
Message-ID: <20110816100949.GA10859@gmail.com> (raw)
In-Reply-To: <7vaaxrn10o.fsf@alter.siamese.dyndns.org>
(continuing an old thread...)
http://thread.gmane.org/gmane.comp.version-control.git/134906/focus=135006
On Wed, Dec 09, 2009 at 04:08:55PM -0800, Junio C Hamano wrote:
> Jay Soffian <jaysoffian@gmail.com> writes:
>
> > diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
> > index 5b62785..5b29fef 100644
> > --- a/git-mergetool--lib.sh
> > +++ b/git-mergetool--lib.sh
> > @@ -46,7 +46,8 @@ check_unchanged () {
> > valid_tool () {
> > case "$1" in
> > kdiff3 | tkdiff | xxdiff | meld | opendiff | \
> > - emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge)
> > + emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis | p4merge | \
> > + diffmerge)
> > ;; # happy
> > tortoisemerge)
> > if ! merge_mode; then
>
> As we are in pre-release feature freeze, it doesn't matter very much if I
> take this patch now, so I'll let it sit in the list archive for now.
>
> But I have to wonder about the maintainability of this file, if we have to
> add every time somebody finds yet another diff/merge backends that could
> be used, even a closed-source one.
>
> There are only a handful of entry points that mergetool--lib defines, and
> by overriding what should happen when these entry points are called, an end
> user should be able to tell mergetool/difftool to use a new backend.
>
> Perhaps it is a better approach to first eject bulk of code for the
> backends we currently support under these case statements into separate
> files, one per backend, move them to mergetool/ subdirectory in the source
> tree, install them as "$(share)/git-core/mergetool/$toolname", and at
> runtime source them? That way, a patch to add a new backend can be as
> simple as adding a new file in mergetool/ and doing nothing else. Also an
> end user can privately add support to a new backend much more easily.
>
> Anybody want to try that approach?
I've started working on splitting this file apart and it is
coming along nicely. I should have some patches soon.
We're approaching feature freeze so I will hold onto them for a
bit. I worked the "meld should use --output with >= 1.5.0"
check into it too, which worked out nicely with the refactored
setup as that logic is neatly tucked away into the meld file.
Is it okay if we install the files into
$(git --exec-path)/mergetools/ instead? I didn't spot an
obvious way to construct $(share)/git-core/ at runtime
(without dirname tricks that assume share=$(prefix)/share).
--
David
next prev parent reply other threads:[~2011-08-16 10:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-08 20:01 [PATCH] mergetool--lib: add diffmerge as a pre-configured mergetool option Jay Soffian
2009-12-09 22:34 ` Charles Bailey
2009-12-09 23:14 ` Jay Soffian
2009-12-10 0:08 ` Junio C Hamano
2009-12-10 0:16 ` Jay Soffian
2011-08-16 10:09 ` David Aguilar [this message]
2011-08-16 17:43 ` Junio C Hamano
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=20110816100949.GA10859@gmail.com \
--to=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jaysoffian@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 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).