Discussion:
External diff viewer and stage/merge tool and git-gui?
Peter Karlsson
2008-06-03 07:24:28 UTC
Permalink
Hi!

As I continue to introduce Git at my workplace, I got the question on
how to integrate external diff tools with Git. I figured out a way to
get it to work with the command-line "git-diff", by setting
GIT_EXTERNAL_DIFF and hacking together a small batch file (yeah, this
is on Windows) that opens the diff in the viewer. For myself, I would
like to use tkdiff, whereas the rest of the team is used to another
side-by-side diff viewer.

However, I cannot seem to find a way to do it from git-gui, which is
the tool I have taught the rest of the team to use as their primary
interface. Is there a way to view the currently selected difference in
an external diff viewer?


Even better would be a way to allow that external tool to edit what is
to be staged - we are having some problems with version-controlling
sources in some of Borland's tools which have the bad habit of storing
local configuration in the project files, and git-gui's "hunk" picker
cannot be used to pick the relevant changes (we have to set "show less
differences" to the lowest value to get a proper hunk view, and then
git-gui cannot stage anything).
--
\\// Peter - http://www.softwolves.pp.se/
David Aguilar
2008-06-03 10:56:03 UTC
Permalink
Post by Peter Karlsson
Hi!
As I continue to introduce Git at my workplace, I got the question on
how to integrate external diff tools with Git. I figured out a way to
get it to work with the command-line "git-diff", by setting
GIT_EXTERNAL_DIFF and hacking together a small batch file (yeah, this
is on Windows) that opens the diff in the viewer. For myself, I would
like to use tkdiff, whereas the rest of the team is used to another
side-by-side diff viewer.
Have you taken a look at ugit?

http://repo.or.cz/w/ugit.git
(requires the latest GitPython http://gitorious.org/projects/git-python/)

It can launch external diff tools. It also has a very fine diff gui.
You can either select the entire diff hunk or, if you need to be more
precise, drill down to specific lines from a diff.

If the built-in diff selection doesn't suffice just right-click in the
modified files section where there's an option to send the diff to a
diff editor. You can define that to be tkdiff, xxdiff, etc.
--
David
Peter Karlsson
2008-06-03 13:40:32 UTC
Permalink
Post by David Aguilar
Have you taken a look at ugit?
Tried to now, but can't get it to quite work due to dependencies of
dependencies[1]. And is it possible to install it on a Windows box without
Cygwin?
--
\\// Peter - http://www.softwolves.pp.se/

[1] GitPython install failes with "ImportError: No module named ez_setup"
Loading...