git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] gitk: parse arbitrary commit-ish in SHA1 field

From
Thomas Rast <trast@student.ethz.ch>
Date
Aug 8, 2009, 14:56 UTC
Message-ID
<f7e6f82a33aa8496de81262d641953534089e980.1249742874.git.trast@student.ethz.ch>

We only accepted either SHA1s or heads/tags that have been read. This meant the user could not, e.g., enter HEAD to go back to the current commit.

Add code to call out to git-rev-parse with the string entered if all other methods of interpreting it failed. The error paths change slighly, because we now know from the rev-parse invocation whether the expression was valid at all. The previous "unknown" path is now only triggered if the revision does exist, but is not in the current view display.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
---

Of course, *ideally* we'd resort to *changing* the current view so that it also lists the requested commit. But my Tk-fu is currently not up to that task.

 gitk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/gitk b/gitk
index 4604c83..4b27886 100755
--- a/gitk
+++ b/gitk
@@ -7906,6 +7906,11 @@ proc gotocommit {} {
 		}
 		set id [lindex $matches 0]
 	    }
+	} else {
+	    if {[catch {set id [exec git rev-parse $sha1string]}]} {
+		error_popup [mc "Revision %s is not known" $sha1string]
+		return
+	    }
 	}
     }
     if {[commitinview $id $curview]} {
@@ -7915,7 +7920,7 @@ proc gotocommit {} {
     if {[regexp {^[0-9a-fA-F]{4,}$} $sha1string]} {
 	set msg [mc "SHA1 id %s is not known" $sha1string]
     } else {
-	set msg [mc "Tag/Head %s is not known" $sha1string]
+	set msg [mc "Revision %s is not in the current view" $sha1string]
     }
     error_popup $msg
 }
-- 
1.6.4.199.g24c3
Next: Junio C Hamano
Message 1 of 4 in “gitk: parse arbitrary commit-ish in SHA1 field”
  1. gitk: parse arbitrary commit-ish in SHA1 fieldThomas Rast, Aug 8, 2009
  2. Junio C HamanoAug 11, 2009
  3. gitk: parse arbitrary commit-ish in SHA1 fieldThomas Rast, Aug 13, 2009
  4. Paul MackerrasAug 13, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.