git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH git-gui v2 1/2] Teach git-gui to use --primer.

From
Keith Cascio <keith@cs.ucla.edu>
Date
Feb 2, 2009, 19:32 UTC
Message-ID
<1233603121-1430-2-git-send-email-keith@cs.ucla.edu>
In-Reply-To
<1233603121-1430-1-git-send-email-keith@cs.ucla.edu>

Teach git-gui to use --primer. Also teach it to check diff's exit code instead of relying on piped output, which could be altered as a consequence of primer options.

Signed-off-by: Keith Cascio <keith@cs.ucla.edu>
---
 lib/diff.tcl |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/diff.tcl b/lib/diff.tcl
index bbbf15c..0e1e4a3 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -276,6 +276,8 @@ proc start_show_diff {cont_info {add_opts {}}} {
 	}
 
 	lappend cmd -p
+	lappend cmd --exit-code
+	lappend cmd --primer
 	lappend cmd --no-color
 	if {$repo_config(gui.diffcontext) >= 1} {
 		lappend cmd "-U$repo_config(gui.diffcontext)"
@@ -310,6 +312,7 @@ proc read_diff {fd cont_info} {
 	global ui_diff diff_active
 	global is_3way_diff is_conflict_diff current_diff_header
 	global current_diff_queue
+	global errorCode
 
 	$ui_diff conf -state normal
 	while {[gets $fd line] >= 0} {
@@ -397,7 +400,9 @@ proc read_diff {fd cont_info} {
 	$ui_diff conf -state disabled
 
 	if {[eof $fd]} {
-		close $fd
+		fconfigure $fd -blocking 1
+		catch { close $fd } err
+		set diff_exit_status $errorCode
 
 		if {$current_diff_queue ne {}} {
 			advance_diff_queue $cont_info
@@ -413,7 +418,7 @@ proc read_diff {fd cont_info} {
 		}
 		ui_ready
 
-		if {[$ui_diff index end] eq {2.0}} {
+		if {$diff_exit_status eq "NONE"} {
 			handle_empty_diff
 		}
 		set callback [lindex $cont_info 1]
-- 
1.6.1
Previous: Keith CascioNext: Keith Cascio
Message 2 of 3 in “Teach git-gui to use --primer.”
  1. 0/2 Teach git-gui to use --primer.Keith Cascio, Feb 2, 2009
  2. 1/2 Teach git-gui to use --primer.Keith Cascio, Feb 2, 2009
  3. 2/2 Hooks for new config variable "diff.primer".Keith Cascio, Feb 2, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.