git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcin Zalewski <marcin.zalewski@gmail.com>
To: git@vger.kernel.org
Subject: Diftool problems
Date: Wed, 29 Apr 2009 12:15:49 -0400	[thread overview]
Message-ID: <7c0fdf4f0904290915i56f58981i70e7093e9bf87d8b@mail.gmail.com> (raw)

Hi,

When git-difftool calls a diff tool, it uses file names given to it by
git-diff. This is a problem because often one of the files to be
compared is the same as the file to be merged into. What I mean is
that, in the following fragment of the git-difftool--helper file, $1
and $2 (I think) may end up being the same:

launch_merge_tool () {
	# Merged is the filename as it appears in the work tree
	# Local is the contents of a/filename
	# Remote is the contents of b/filename
	# Custom merge tool commands might use $BASE so we provide it
	MERGED="$1"
	LOCAL="$2"
	REMOTE="$3"
	BASE="$1"

Git-mergetool creates a temporary file for merging, but git-difftool
does not. Since git-diff tools is not meant for merging anything, it
may seem that there is no problem. However, some merge tools (such as
ediff) do not like when the merge target is the same as one of the
files to be compared. I use the following emacs snippet by Theodore
Tso:

http://kerneltrap.org/mailarchive/git/2007/7/2/250505

With that emacs code, ediff refuses to do a diff with the way that
difftool is done now. I do not have a patch, but it seems that a
simple fix would be to copy the code that creates temporary files from
mergetool.

Cheers,
Marcin Zalewski

             reply	other threads:[~2009-04-29 16:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-29 16:15 Marcin Zalewski [this message]
2009-04-29 19:42 ` Diftool problems Markus Heidelberg
2009-04-29 19:55   ` Marcin Zalewski
2009-04-29 20:48     ` Markus Heidelberg
2009-04-29 21:37       ` Marcin Zalewski
2009-05-02  9:05     ` 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=7c0fdf4f0904290915i56f58981i70e7093e9bf87d8b@mail.gmail.com \
    --to=marcin.zalewski@gmail.com \
    --cc=git@vger.kernel.org \
    /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).