git-gui: Cache the GIT_COMMITTER_IDENT value on first sign-off.

Caching the Signed-Off-By line isn't very important (as its not
performance critical).  The major improvement here is that we
now report an error to the user if we can't obtain their name
from git-var.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Shawn O. Pearce 2006-11-08 23:05:46 -05:00
parent d4ab2035ca
commit 97bf01c465
1 changed files with 20 additions and 11 deletions

25
git-gui
View File

@ -1398,21 +1398,30 @@ proc do_include_all {} {
}
}

proc do_signoff {} {
global ui_comm
set GIT_COMMITTER_IDENT {}

catch {
set me [exec git var GIT_COMMITTER_IDENT]
if {[regexp {(.*) [0-9]+ [-+0-9]+$} $me me name]} {
set str "Signed-off-by: $name"
proc do_signoff {} {
global ui_comm GIT_COMMITTER_IDENT

if {$GIT_COMMITTER_IDENT == {}} {
if {[catch {set me [exec git var GIT_COMMITTER_IDENT]} err]} {
error_popup "Unable to obtain your identity:\n$err"
return
}
if {![regexp {^(.*) [0-9]+ [-+0-9]+$} \
$me me GIT_COMMITTER_IDENT]} {
error_popup "Invalid GIT_COMMITTER_IDENT:\n$me"
return
}
}

set str "Signed-off-by: $GIT_COMMITTER_IDENT"
if {[$ui_comm get {end -1c linestart} {end -1c}] != $str} {
$ui_comm insert end "\n"
$ui_comm insert end $str
$ui_comm see end
}
}
}
}

proc do_amend_last {} {
load_last_commit