Re: Parsing diff --git lines
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Mar 9, 2008, 08:25 UTC
- Message-ID
- <m3r6ekfgnw.fsf@localhost.localdomain>
- In-Reply-To
- <alpine.LFD.1.00.0803081955110.5896@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 16 quoted lines
> On Sat, 8 Mar 2008, Simon Fraser wrote: > > > > However, I don't see a reliable way to identify the two files > > from a "diff --git" line. Here's a (deliberately pathological) > > example: > > See how "git-apply" does it. > > The rule is: > > - if the filenames are different, you should ignore the filenames on the > "diff --git" line, and trust the ones on the "renamed from/to" ones > (which are unambiguous because they only have one filename per line) > > - if the filenames aren't different, then you can unambiguously know how > to parse it by simply making sure they are the same.
By the way, the default pre-commit hook behaves a bit strangely on files which contain spaces[*1*] in filename (due to GNU-diff-uism):
* * You have some suspicious patch lines: * * In b * trailing whitespace (line 1) b:1:++ b/ b
Foootnote:
==========
[*1*] If file has '"', '\' or control character in filename,
it is quoted. -- Jakub Narebski Poland ShadeHawk on #git