git-gui: Unabbreviate commit SHA-1s prior to display
If the end-user feeds us an abbreviated SHA-1 on the command line for `git gui browser` or `git gui blame` we now unabbreviate the value through `git rev-parse` so that the title section of the blame or browser window shows the user the complete SHA-1 as Git determined it to be. If the abbreviated value was ambiguous we now complain with the standard error message(s) as reported by git-rev-parse --verify, so that the user can understand what might be wrong and correct their command line. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
d41b43eb4c
commit
02087abcce
21
git-gui.sh
21
git-gui.sh
@ -1746,7 +1746,18 @@ browser {
|
||||
set subcommand_args {rev?}
|
||||
switch [llength $argv] {
|
||||
0 { load_current_branch }
|
||||
1 { set current_branch [lindex $argv 0] }
|
||||
1 {
|
||||
set current_branch [lindex $argv 0]
|
||||
if {[regexp {^[0-9a-f]{1,39}$} $current_branch]} {
|
||||
if {[catch {
|
||||
set current_branch \
|
||||
[git rev-parse --verify $current_branch]
|
||||
} err]} {
|
||||
puts stderr $err
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
default usage
|
||||
}
|
||||
browser::new $current_branch
|
||||
@ -1781,6 +1792,14 @@ blame {
|
||||
if {$head eq {}} {
|
||||
load_current_branch
|
||||
} else {
|
||||
if {[regexp {^[0-9a-f]{1,39}$} $head]} {
|
||||
if {[catch {
|
||||
set head [git rev-parse --verify $head]
|
||||
} err]} {
|
||||
puts stderr $err
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
set current_branch $head
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user