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 --verify with the string entered if all other methods of interpreting it failed. (git-rev-parse alone is not enough as we really want a single revision.) 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@xxxxxxxxxxxxxxx> --- Junio C Hamano wrote: > > + } else { > > + if {[catch {set id [exec git rev-parse $sha1string]}]} { > > "--verify", or "--no-flags --revs-only"? Indeed, thanks. gitk | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/gitk b/gitk index 4604c83..e50b666 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 --verify $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.269.g0449d -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html