Git:编辑帅哥失败了(当文件有其他帅哥?)

Oli*_*Ash 6 git

给定一个包含内容的文件:

foo
bar
baz

foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

当我编辑这个文件成为

foo
bar1
baz

foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo

foo
bar1
baz
Run Code Online (Sandbox Code Playgroud)

(用bars替换bar1s)

当我运行git add --patch并编辑第一个大块头时

@@ -1,5 +1,5 @@
 foo
-bar
+bar1
 baz

 foo
Run Code Online (Sandbox Code Playgroud)

成为

@@ -1,5 +1,5 @@
 foo
-bar
+bar2
 baz

 foo
Run Code Online (Sandbox Code Playgroud)

(替换+bar1+bar2)

我收到以下错误

error: patch fragment without header at line 12: @@ -15,5 +15,5 @@ foo
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
Run Code Online (Sandbox Code Playgroud)

我不清楚为什么这个编辑会失败.

Git版本:2.17.0

Oli*_*Ash 7

这似乎是2.17.0的回归.

我在Git邮件列表上提交了这个问题,那里的社区帮助我识别了这个问题.

我的问题:https://public-inbox.org/git/20180510104136.8653-1-oliverjash@gmail.com/

答案:https://public-inbox.org/git/be321106-2f10-e678-8237-449d2dd30fee@​​talktalk.net/

问题是我的编辑器在编辑帅哥时修剪了上下文行的空白.在这个例子中,它是baz和之间空行的空间foo.

这似乎是自Git 2.17.0以来的行为变化,如本电子邮件中所述:https://public-inbox.org/git/be321106-2f10-e678-8237-449d2dd30fee@​​talktalk.net/ .