From: Paul Mackerras <paulus@samba.org>
Date: Tue, 21 Jun 2005 00:20:04 +0000 (+1000)
Subject: Pass arguments through git-rev-parse.
X-Git-Url: http://test.brassandglass.co.uk/gitweb?a=commitdiff_plain;h=2efef4b9b5e65b436eff3b481edc273204453c72;p=gitk

Pass arguments through git-rev-parse.

This allows the user to specify ranges more flexibly; for instance
the user can now do "gitk v2.6.12.." and see all the changes since
2.6.12.
---

diff --git a/gitk b/gitk
index d509998..fef705c 100755
--- a/gitk
+++ b/gitk
@@ -14,14 +14,22 @@ proc getcommits {rargs} {
     global startmsecs nextupdate
     global ctext maincursor textcursor nlines
 
-    if {$rargs == {}} {
-	set rargs HEAD
-    }
     set commits {}
     set phase getcommits
     set startmsecs [clock clicks -milliseconds]
     set nextupdate [expr $startmsecs + 100]
-    if [catch {set commfd [open "|git-rev-list --merge-order $rargs" r]} err] {
+    if [catch {
+	set parse_args [concat --default HEAD --merge-order $rargs]
+	set parsed_args [split [eval exec git-rev-parse $parse_args] "\n"]
+    }] {
+	if {$rargs == {}} {
+	    set rargs HEAD
+	}
+	set parsed_args [concat --merge-order $rargs]
+    }
+    if [catch {
+	set commfd [open "|git-rev-list $parsed_args" r]
+    } err] {
 	puts stderr "Error executing git-rev-list: $err"
 	exit 1
     }