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

[PATCH 1/1] git gui: fix staging a second line to a 1-line file

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 26, 2019, 17:43 UTC
Message-ID
<02ec6c5bde2f15c51e946c6806d8231fb5abffe5.1569519804.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.359.git.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>

When a 1-line file is augmented by a second line, and the user tries to stage that single line via the "Stage Line" context menu item, we do not want to see "apply: corrupt patch at line 5".

The reason for this error was that the hunk header looks like this:
	@@ -1 +1,2 @@

but the existing code expects the original range always to contain a comma. This problem is easily fixed by cutting the string "1 +1,2" (that Git GUI formerly mistook for the starting line) at the space.

This fixes https://github.com/git-for-windows/git/issues/515
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 lib/diff.tcl | 1 +
 1 file changed, 1 insertion(+)
diff --git a/lib/diff.tcl b/lib/diff.tcl
index 4cae10a4c7..68c4a6c736 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -698,6 +698,7 @@ proc apply_range_or_line {x y} {
 		set hh [$ui_diff get $i_l "$i_l + 1 lines"]
 		set hh [lindex [split $hh ,] 0]
 		set hln [lindex [split $hh -] 1]
+		set hln [lindex [split $hln " "] 0]
 
 		# There is a special situation to take care of. Consider this
 		# hunk:
-- 
gitgitgadget
Previous: Johannes Schindelin via GitGitGadgetNext: Bert Wesarg
Message 2 of 5 in “git gui: fix staging a second line to a 1-line file”
  1. 0/1 git gui: fix staging a second line to a 1-line fileJohannes Schindelin via GitGitGadget, Sep 26, 2019
  2. 1/1 git gui: fix staging a second line to a 1-line fileJohannes Schindelin via GitGitGadget, Sep 26, 2019
  3. Bert WesargSep 26, 2019
  4. Pratyush YadavSep 26, 2019
  5. Johannes SchindelinSep 26, 2019

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.