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:
		
							
								
								
									
										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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shawn O. Pearce
					Shawn O. Pearce