From: David Aguilar <davvid@gmail.com>
To: Paul Mackerras <paulus@samba.org>
Cc: Markus Heidelberg <markus.heidelberg@web.de>,
Nanako Shiraishi <nanako3@lavabit.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: [PATCH v5] gitk: Use git-difftool for external diffs when git >= 1.7.0
Date: Thu, 8 Apr 2010 02:08:10 -0700 [thread overview]
Message-ID: <1270717690-32133-1-git-send-email-davvid@gmail.com> (raw)
In-Reply-To: <20100408090211.GA31594@gmail.com>
git-difftool is used instead of the built-in external diff
code when git is >= 1.7.0. git-difftool's '--extcmd=frotz'
feature was first introduced in 1.7.0 and is the mechanism
through which we launch the configured difftool.
A benefit of this change is that gitk's external diff feature
no longer needs write-access to the current directory.
Signed-off-by: David Aguilar <davvid@gmail.com>
---
Unlike previous versions, this one checks the git version at runtime
and gracefully falls back to the old code when git is older.
gitk | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/gitk b/gitk
index 1f36a3e..a49eecc 100755
--- a/gitk
+++ b/gitk
@@ -3355,6 +3355,7 @@ proc external_diff {} {
global flist_menu_file
global diffids
global extdifftool
+ global git_version
if {[llength $diffids] == 1} {
# no reference commit given
@@ -3375,6 +3376,19 @@ proc external_diff {} {
set diffidto [lindex $diffids 1]
}
+ if {[package vcompare $git_version "1.7.0"] >= 0} {
+ set cmd [list "git" "difftool" "--no-prompt" "--extcmd=$extdifftool"]
+ if {$diffidfrom ne $nullid && $diffidfrom ne $nullid2} {
+ lappend cmd $diffidfrom
+ }
+ if {$diffidto ne $nullid && $diffidto ne $nullid2} {
+ lappend cmd $diffidto
+ }
+ lappend cmd "--" $flist_menu_file
+ eval exec $cmd &
+ return
+ }
+
# make sure that several diffs wont collide
set diffdir [gitknewtmpdir]
if {$diffdir eq {}} return
--
1.7.0.3.313.g87b3c
next prev parent reply other threads:[~2010-04-08 9:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-27 21:45 [PATCH] gitk: Use git-difftool for external diffs David Aguilar
2010-03-28 0:01 ` [PATCH v2] " David Aguilar
2010-03-28 0:20 ` [PATCH v3] " David Aguilar
2010-03-28 10:59 ` Markus Heidelberg
2010-03-31 2:06 ` David Aguilar
2010-03-31 2:09 ` [PATCH v4] " David Aguilar
2010-04-02 11:32 ` Markus Heidelberg
2010-04-08 9:02 ` David Aguilar
2010-04-08 9:08 ` David Aguilar [this message]
2010-04-17 8:52 ` [PATCH v5] gitk: Use git-difftool for external diffs when git >= 1.7.0 Paul Mackerras
2010-04-17 22:45 ` David Aguilar
2010-04-18 2:20 ` Jay Soffian
2010-04-20 8:11 ` [PATCH v6] gitk: Use git-difftool for external diffs when available David Aguilar
2010-06-08 8:10 ` 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=1270717690-32133-1-git-send-email-davvid@gmail.com \
--to=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=markus.heidelberg@web.de \
--cc=nanako3@lavabit.com \
--cc=paulus@samba.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.