From: Junio C Hamano <gitster@pobox•com>
To: Laszlo Ersek <lersek@redhat•com>
Cc: git@vger•kernel.org, jordan.l.justen@intel•com, matt.fleming@intel•com
Subject: Re: [PATCH for-maint] apply: gitdiff_verify_name(): accept "/dev/null\r"
Date: Tue, 23 Sep 2014 11:54:37 -0700 [thread overview]
Message-ID: <xmqq1tr2jhg2.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1411434583-27692-1-git-send-email-lersek@redhat.com> (Laszlo Ersek's message of "Tue, 23 Sep 2014 03:09:43 +0200")
Laszlo Ersek <lersek@redhat•com> writes:
> git format-patch master..branch1
The output from this has these (excerpt from "od -xc" output):
0000360 f 2 \n \n d i f f - - g i t
6620 0a32 640a 6669 2066 2d2d 6967 2074
0000400 a / f 2 b / f 2 \n n e w f i
2f61 3266 6220 662f 0a32 656e 2077 6966
0000420 l e m o d e 1 0 0 6 4 4 \n i
656c 6d20 646f 2065 3031 3630 3434 690a
0000440 n d e x 0 0 0 0 0 0 0 . . f 3
646e 7865 3020 3030 3030 3030 2e2e 3366
0000460 5 d 3 e 6 \n - - - / d e v / n
6435 6533 0a36 2d2d 202d 642f 7665 6e2f
0000500 u l l \n + + + b / f 2 \n @ @
6c75 0a6c 2b2b 202b 2f62 3266 400a 2040
0000520 - 0 , 0 + 1 @ @ \n + h e l l
302d 302c 2b20 2031 4040 2b0a 6568 6c6c
0000540 o w o r l d \r \n - - \n 2 . 1
206f 6f77 6c72 0d64 2d0a 202d 320a 312e
The structural parts of the diff, including "--- /dev/null" line,
are all terminated by "\n" (as they should be), and the only CR
appears in the message is at the end of "+hello world" line.
So I do not think apply should need to loosen its sanity check and
take a random whitespace after the "/dev/null" as a valid "this is a
creation event for the path" marker (e.g. "--- /dev/null whoa"?).
is_dev_null() is used to in the fallback code path that parses
traditional patch output (e.g. GNU diff) which throws random cruft
(e.g. timestamp) after the /dev/null marker, e.g.
$ diff -u /dev/null f2
--- /dev/null 2014-09-17 18:22:57.995111003 -0700
+++ f2 2014-09-23 11:37:09.000000000 -0700
@@ -0,0 +1 @@
+hello world
and we'd be hesitant to allow that kind of looseness for Git patches
where we know we end the line after the "/dev/null" marker.
> 3. In the reviewer / tester / maintainer role, save the patch from your
> email client to a local file. Assume that your email client does not
> corrupt the patch when saving it.
Perhaps compare this saved file with the output from the above
format-patch to see where things got broken?
SMTP transport may be CRLF-unsafe, so I have a suspicion that it may
turn out that what you are trying to do might be an equilvalent of
git format-patch ... |
# first lose all \r\n
dos2unix |
# then make everything \r\n
unix2dos |
# and apply
git am
which is not workable in the first place. I dunno.
next prev parent reply other threads:[~2014-09-23 18:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 1:09 [PATCH for-maint] apply: gitdiff_verify_name(): accept "/dev/null\r" Laszlo Ersek
2014-09-23 18:54 ` Junio C Hamano [this message]
2014-09-23 19:31 ` Laszlo Ersek
2014-09-23 19:56 ` Junio C Hamano
2014-09-23 20:33 ` Laszlo Ersek
2014-09-23 20:40 ` Junio C Hamano
2014-09-23 20:57 ` Laszlo Ersek
2014-09-23 20:02 ` Junio C Hamano
2014-09-23 20:32 ` Laszlo Ersek
2014-09-23 20:35 ` Junio C Hamano
2014-09-23 20:49 ` Laszlo Ersek
2014-09-23 21:35 ` Junio C Hamano
2014-09-24 12:56 ` Laszlo Ersek
2014-09-24 17:55 ` Junio C Hamano
2014-09-23 20:17 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq1tr2jhg2.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=jordan.l.justen@intel$(echo .)com \
--cc=lersek@redhat$(echo .)com \
--cc=matt.fleming@intel$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox