Browse Source

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 <spearce@spearce.org>
maint
Shawn O. Pearce 18 years ago
parent
commit
d63efae281
  1. 40
      git-gui

40
git-gui

@ -732,10 +732,31 @@ proc create_new_commit {} { @@ -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 {} { @@ -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

Loading…
Cancel
Save