From 02087abccea681bc0e1f6a9607e97df79ebbf2d9 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Sun, 8 Jul 2007 21:19:59 -0400 Subject: [PATCH] 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 --- git-gui.sh | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/git-gui.sh b/git-gui.sh index ac043677c..1844c9067 100755 --- a/git-gui.sh +++ b/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 } -- 2.30.2