Re: [PATCH v2 1/2] Allow git-apply to ignore the hunk headers
From: Sergei Organov <hidden>
Date: 2016-06-15 22:44:42
Junio C Hamano [off-list ref] writes:
Johannes Schindelin [off-list ref] writes:quoted
quoted
And the robustness issue I worry about the second point also applies to a line that is "^-- $", especially if we were to make this available to git-am. Perhaps when the line begins with a '-', the logic could be extra careful to detect the case where the line looks like the e-mail signature separator and check one line beyond it to see if it does not look anything like part of a diff (in which case you stop, without considering the line you are currently looking at, "^-- $", a deletion of "^- $", as part of the preimage context).Is this really an issue? fixup_counts() is only called after a hunk header was read, and that should be well after any "^-- $".Are you talking about "^-- $" or "^---$"? Yes we are way past the three-dash separator at this point, but e-mail signature separator happens at the very end after the patch. You read a hunk header line "@@ -l,m +n,o @@", and start counting the diff text because you do not trust m and o. When you read the last hunk in a patch e-mail, you may hit a e-mail signature separator, like what is given by format-patch output at the end. Mistaking that as an extra preimage context to remove "^- $" is what I was worried about.
Don't you think it's time to fix git-format-patch to put some reliable "end-of-patch" marker line before the signature? This change (along with refusal to generate brain-damaged empty lines inside hunks) will make git diffs easily parseable without information from hunk headers. -- Sergei.