From: Shawn O. Pearce Date: Sun, 19 Nov 2006 02:07:05 +0000 (-0500) Subject: git-gui: Verify the user has GIT_COMMITTER_IDENT before comitting. X-Git-Tag: gitgui-0.6.0~192 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d63efae2816a277e40a379eb5c5f23f2a656fddc;p=git.git git-gui: Verify the user has GIT_COMMITTER_IDENT before comitting. Since git-commit also checks that the user has a GIT_COMMITTER_IDENT value before it lets the user make a commit we should do the same check here in git-gui. We cache the result and assume that the user won't do something which would change the status of GIT_COMMITTER_IDENT while we are running. Signed-off-by: Shawn O. Pearce --- diff --git a/git-gui b/git-gui index 5c6af8940..7630a2d2e 100755 --- a/git-gui +++ b/git-gui @@ -732,10 +732,31 @@ proc create_new_commit {} { rescan {set ui_status_value {Ready.}} } +set GIT_COMMITTER_IDENT {} + +proc committer_ident {} { + global GIT_COMMITTER_IDENT + + if {$GIT_COMMITTER_IDENT eq {}} { + if {[catch {set me [exec git var GIT_COMMITTER_IDENT]} err]} { + error_popup "Unable to obtain your identity:\n\n$err" + return {} + } + if {![regexp {^(.*) [0-9]+ [-+0-9]+$} \ + $me me GIT_COMMITTER_IDENT]} { + error_popup "Invalid GIT_COMMITTER_IDENT:\n\n$me" + return {} + } + } + + return $GIT_COMMITTER_IDENT +} + proc commit_tree {} { global HEAD commit_type file_states ui_comm repo_config if {![lock_index update]} return + if {[committer_ident] eq {}} return # -- Our in memory state should match the repository. # @@ -1911,24 +1932,13 @@ proc do_include_all {} { [array names file_states] } -set GIT_COMMITTER_IDENT {} - proc do_signoff {} { - global ui_comm GIT_COMMITTER_IDENT + global ui_comm - if {$GIT_COMMITTER_IDENT eq {}} { - if {[catch {set me [exec git var GIT_COMMITTER_IDENT]} err]} { - error_popup "Unable to obtain your identity:\n\n$err" - return - } - if {![regexp {^(.*) [0-9]+ [-+0-9]+$} \ - $me me GIT_COMMITTER_IDENT]} { - error_popup "Invalid GIT_COMMITTER_IDENT:\n\n$me" - return - } - } + set me [committer_ident] + if {$me eq {}} return - set sob "Signed-off-by: $GIT_COMMITTER_IDENT" + set sob "Signed-off-by: $me" set last [$ui_comm get {end -1c linestart} {end -1c}] if {$last ne $sob} { $ui_comm edit separator