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>
This commit is contained in:
parent
24ac9b752d
commit
d63efae281
40
git-gui
40
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
|
||||
|
Loading…
Reference in New Issue
Block a user