projects
/
git.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4f2c264
)
Allow short SHA1 IDs in the SHA1 entry field.
author
Paul Mackerras
<paulus@dorrigo.(none)>
Mon, 18 Jul 2005 16:16:35 +0000
(12:16 -0400)
committer
Paul Mackerras
<paulus@dorrigo.(none)>
Mon, 18 Jul 2005 16:16:35 +0000
(12:16 -0400)
gitk
patch
|
blob
|
history
diff --git
a/gitk
b/gitk
index
d994eec
..
9e52a35
100755
(executable)
--- a/
gitk
+++ b/
gitk
@@
-1949,18
+1949,35
@@
proc sha1change {n1 n2 op} {
proc gotocommit {} {
global sha1string currentid idline tagids
proc gotocommit {} {
global sha1string currentid idline tagids
+ global lineid numcommits
+
if {$sha1string == {}
|| ([info exists currentid] && $sha1string == $currentid)} return
if {[info exists tagids($sha1string)]} {
set id $tagids($sha1string)
} else {
set id [string tolower $sha1string]
if {$sha1string == {}
|| ([info exists currentid] && $sha1string == $currentid)} return
if {[info exists tagids($sha1string)]} {
set id $tagids($sha1string)
} else {
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)]} {
selectline $idline($id)
return
}
}
if {[info exists idline($id)]} {
selectline $idline($id)
return
}
- if {[regexp {^[0-9a-fA-F]{4
0
}$} $sha1string]} {
+ if {[regexp {^[0-9a-fA-F]{4
,
}$} $sha1string]} {
set type "SHA1 id"
} else {
set type "Tag"
set type "SHA1 id"
} else {
set type "Tag"