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

[PATCH] git gui: show diffs with a minimum of 1 context line

From
Clemens Buchacher <drizzd@aon.at>
Date
Aug 30, 2008, 16:45 UTC
Message-ID
<20080830164527.GA25370@localhost>

git apply does not handle diffs without context correctly. Configuring git gui to show zero context lines therefore breaks staging.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
---

In reply to this patch I will send a first attempt at fixing this problem instead of avoiding it. There does not seem to be a straightforward solution, however, so this should hide the bug for now.

 git-gui/git-gui.sh     |    2 +-
 git-gui/lib/diff.tcl   |    2 +-
 git-gui/lib/option.tcl |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index ad65aaa..86402d4 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1932,7 +1932,7 @@ proc show_more_context {} {
 
 proc show_less_context {} {
 	global repo_config
-	if {$repo_config(gui.diffcontext) >= 1} {
+	if {$repo_config(gui.diffcontext) > 1} {
 		incr repo_config(gui.diffcontext) -1
 		reshow_diff
 	}
diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl
index 52b79e4..4a7138b 100644
--- a/git-gui/lib/diff.tcl
+++ b/git-gui/lib/diff.tcl
@@ -175,7 +175,7 @@ proc show_diff {path w {lno {}} {scroll_pos {}}} {
 
 	lappend cmd -p
 	lappend cmd --no-color
-	if {$repo_config(gui.diffcontext) >= 0} {
+	if {$repo_config(gui.diffcontext) >= 1} {
 		lappend cmd "-U$repo_config(gui.diffcontext)"
 	}
 	if {$w eq $ui_index} {
diff --git a/git-gui/lib/option.tcl b/git-gui/lib/option.tcl
index ffb3f00..5e1346e 100644
--- a/git-gui/lib/option.tcl
+++ b/git-gui/lib/option.tcl
@@ -125,7 +125,7 @@ proc do_options {} {
 		{b gui.matchtrackingbranch {mc "Match Tracking Branches"}}
 		{b gui.fastcopyblame {mc "Blame Copy Only On Changed Files"}}
 		{i-20..200 gui.copyblamethreshold {mc "Minimum Letters To Blame Copy On"}}
-		{i-0..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
+		{i-1..99 gui.diffcontext {mc "Number of Diff Context Lines"}}
 		{i-0..99 gui.commitmsgwidth {mc "Commit Message Text Width"}}
 		{t gui.newbranchtemplate {mc "New Branch Name Template"}}
 		} {
-- 
1.6.0
Next: Clemens Buchacher
Message 1 of 17 in “git gui: show diffs with a minimum of 1 context line”
  1. git gui: show diffs with a minimum of 1 context lineClemens Buchacher, Aug 30, 2008
  2. git gui: use apply --unidiff-zero when staging hunks without contextClemens Buchacher, Aug 30, 2008
  3. Junio C HamanoAug 30, 2008
  4. git apply: do not match beginning in special unidiff-zero caseClemens Buchacher, Aug 30, 2008
  5. Junio C HamanoAug 30, 2008
  6. git-apply: Loosen "match_beginning" logicJunio C Hamano, Aug 30, 2008
  7. Johannes SixtAug 30, 2008
  8. Clemens BuchacherAug 30, 2008
  9. Junio C HamanoAug 30, 2008
  10. Clemens BuchacherAug 30, 2008
  11. Shawn O. PearceSep 1, 2008
  12. Junio C HamanoAug 30, 2008
  13. Junio C HamanoAug 30, 2008
  14. git gui: show diffs with a minimum of 1 context lineClemens Buchacher, Aug 30, 2008
  15. Shawn O. PearceSep 1, 2008
  16. Clemens BuchacherSep 1, 2008
  17. Shawn O. PearceSep 1, 2008

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.