Mail Archives: cygwin/2009/12/01/15:43:48
My subject keeps getting blocked due to "spam-like" keywords, perhaps
it will work this time:
I'd like to report this here but I don't really have a general
solution. Perhaps someone who knows better can comment.
In git-1.6.1.2 [1.5] and git-1.6.4.2 [1.7] there is a command called
'git-mergetool' that is used as a wrapper for various graphical
merging tools, such as kdiff3. It makes local copies of the relevant
commits and brings up an interactive gui for resolving merge conflicts.
In git-1.6.4.2 there is a new command called 'git difftool' that does
a very similar thing, except it's designed to show the output of 'git
diff' in a graphical tool, rather than a merge.
git-mergetool works very well with a native Windows (i.e. not Cygwin)
installation of kdiff3 because it creates its working files in the
current working directory, usually called:
./<original-file>.LOCAL.xxxx.<ext> and ./<original-file>.REMOTE.xxxx.<ext>.
Because these paths are relative to the CWD, the non-Cygwin version of
kdiff3 handles this fine. E.g:
kdiff3 --auto --L1 build.xml (Base) --L2 build.xml (Local) --L3
build.xml (Remote) -o build.xml ./build.xml.BASE.5512.xml
./build.xml.LOCAL.5512.xml ./build.xml.REMOTE.5512.xml
But git-difftool does something slightly different - it creates the
temporary versions of the file in /tmp with a random prefix, e.g.
/tmp/Vc0BZy_<original-file>. This causes the Windows version of kdiff3
to fail to open the file, because the path "/tmp/...." is invalid. In
my case, the path that would work is "c:/cygwin-1.7/tmp/..." instead:
kdiff3 --auto --L1 "build.xml (A)" --L2 "build.xml (B)"
/tmp/Vc0BZy_build.xml build.xml
It's the /tmp/... bit that kdiff3 can't understand. On the other
hand, this command does work:
kdiff3 --auto --L1 "build.xml (A)" --L2 "build.xml (B)"
c:/cygwin-1.7/tmp/Vc0BZy_build.xml build.xml
Perhaps git-difftool should create the temporary file in CWD just like
git-mergetool, rather than the Cygwin-specific path /tmp?
I'm using the Windows version of kdiff3 to avoid dependency on the
graphical X libraries that Cygwin's kdiff3 would require. I think it's
a fairly common thing to do when working with git on Windows. I can
see that the Cygwin version of kdiff3 would probably not exhibit this problem.
I imagine the same problem will occur with other Windows versions of
merge/diff tools.
I also understand if there's no intention by the Cygwin git maintainer
to support non-Cygwin gui merge tools, but I don't think I'm the only
person using them extensively.
-- David.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -