Allow short SHA1 IDs in the SHA1 entry field.

This commit is contained in:
Paul Mackerras 2005-07-18 12:16:35 -04:00
parent 4f2c2642ca
commit f3b8b3ce3e

19
gitk
View File

@ -1949,18 +1949,35 @@ proc sha1change {n1 n2 op} {
proc gotocommit {} { proc gotocommit {} {
global sha1string currentid idline tagids global sha1string currentid idline tagids
global lineid numcommits
if {$sha1string == {} if {$sha1string == {}
|| ([info exists currentid] && $sha1string == $currentid)} return || ([info exists currentid] && $sha1string == $currentid)} return
if {[info exists tagids($sha1string)]} { if {[info exists tagids($sha1string)]} {
set id $tagids($sha1string) set id $tagids($sha1string)
} else { } else {
set id [string tolower $sha1string] set id [string tolower $sha1string]
if {[regexp {^[0-9a-f]{4,39}$} $id]} {
set matches {}
for {set l 0} {$l < $numcommits} {incr l} {
if {[string match $id* $lineid($l)]} {
lappend matches $lineid($l)
}
}
if {$matches ne {}} {
if {[llength $matches] > 1} {
error_popup "Short SHA1 id $id is ambiguous"
return
}
set id [lindex $matches 0]
}
}
} }
if {[info exists idline($id)]} { if {[info exists idline($id)]} {
selectline $idline($id) selectline $idline($id)
return return
} }
if {[regexp {^[0-9a-fA-F]{40}$} $sha1string]} { if {[regexp {^[0-9a-fA-F]{4,}$} $sha1string]} {
set type "SHA1 id" set type "SHA1 id"
} else { } else {
set type "Tag" set type "Tag"