Allow short SHA1 IDs in the SHA1 entry field.
This commit is contained in:
parent
4f2c2642ca
commit
f3b8b3ce3e
19
gitk
19
gitk
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user