4 From nobody Mon Sep 17 00:00:00 2001
8 <a.u.thor@example.com> (Comment)
9 Date: Fri, 9 Jun 2006 00:44:16 -0700
10 Subject: [PATCH] a commit.
12 Here is a patch from A U Thor.
16 1 files changed, 1 insertions(+), 1 deletions(-)
18 diff --git a/foo b/foo
19 index 9123cdc..918dcf8 100644
23 -Fri Jun 9 00:44:04 PDT 2006
24 +Fri Jun 9 00:44:13 PDT 2006
28 From nobody Mon Sep 17 00:00:00 2001
29 From: A U Thor <a.u.thor@example.com>
30 Date: Fri, 9 Jun 2006 00:44:16 -0700
31 Subject: [PATCH] another patch
33 Here is a patch from A U Thor. This addresses the issue raised in the
36 From: Nit Picker <nit.picker@example.net>
37 Subject: foo is too old
38 Message-Id: <nitpicker.12121212@example.net>
40 Hopefully this would fix the problem stated there.
43 I have included an extra blank line above, but it does not have to be
44 stripped away here, along with the
45 whitespaces at the end of the above line. They are expected to be squashed
46 when the message is made into a commit log by stripspace,
47 Also, there are three blank lines after this paragraph,
48 two truly blank and another full of spaces in between.
56 1 files changed, 1 insertions(+), 1 deletions(-)
58 diff --git a/foo b/foo
59 index 9123cdc..918dcf8 100644
63 -Fri Jun 9 00:44:04 PDT 2006
64 +Fri Jun 9 00:44:13 PDT 2006
68 From nobody Mon Sep 17 00:00:00 2001
69 From: Junio C Hamano <junio@kernel.org>
70 Date: Fri, 9 Jun 2006 00:44:16 -0700
71 Subject: re: [PATCH] another patch
73 From: A U Thor <a.u.thor@example.com>
74 Subject: [PATCH] third patch
76 Here is a patch from A U Thor. This addresses the issue raised in the
79 From: Nit Picker <nit.picker@example.net>
80 Subject: foo is too old
81 Message-Id: <nitpicker.12121212@example.net>
83 Hopefully this would fix the problem stated there.
87 1 files changed, 1 insertions(+), 1 deletions(-)
89 diff --git a/foo b/foo
90 index 9123cdc..918dcf8 100644
94 -Fri Jun 9 00:44:04 PDT 2006
95 +Fri Jun 9 00:44:13 PDT 2006
99 From nobody Sat Aug 27 23:07:49 2005
100 Path: news.gmane.org!not-for-mail
101 Message-ID: <20050721.091036.01119516.yoshfuji@linux-ipv6.org>
102 From: YOSHIFUJI Hideaki / =?ISO-2022-JP?B?GyRCNUhGIzFRTEAbKEI=?=
103 <yoshfuji@linux-ipv6.org>
104 Newsgroups: gmane.comp.version-control.git
105 Subject: [PATCH 1/2] GIT: Try all addresses for given remote name
106 Date: Thu, 21 Jul 2005 09:10:36 -0400 (EDT)
108 Organization: USAGI/WIDE Project
109 Approved: news@gmane.org
110 NNTP-Posting-Host: main.gmane.org
112 Content-Type: Text/Plain; charset=us-ascii
113 Content-Transfer-Encoding: 7bit
114 X-Trace: sea.gmane.org 1121951434 29350 80.91.229.2 (21 Jul 2005 13:10:34 GMT)
115 X-Complaints-To: usenet@sea.gmane.org
116 NNTP-Posting-Date: Thu, 21 Jul 2005 13:10:34 +0000 (UTC)
120 Try all addresses for given remote name until it succeeds.
123 Signed-of-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
125 diff --git a/connect.c b/connect.c
128 @@ -96,42 +96,57 @@ static enum protocol get_protocol(const
129 die("I don't handle protocol '%s'", name);
132 -static void lookup_host(const char *host, struct sockaddr *in)
134 - struct addrinfo *res;
137 - ret = getaddrinfo(host, NULL, NULL, &res);
139 - die("Unable to look up %s (%s)", host, gai_strerror(ret));
140 - *in = *res->ai_addr;
144 +#define STR(s) STR_(s)
146 static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path)
148 - struct sockaddr addr;
149 - int port = DEFAULT_GIT_PORT, sockfd;
152 - colon = strchr(host, ':');
155 - unsigned long n = strtoul(colon+1, &end, 0);
156 - if (colon[1] && !*end) {
161 + char *port = STR(DEFAULT_GIT_PORT);
162 + struct addrinfo hints, *ai0, *ai;
165 + if (host[0] == '[') {
166 + end = strchr(host + 1, ']');
175 + colon = strchr(end, ':');
180 + memset(&hints, 0, sizeof(hints));
181 + hints.ai_socktype = SOCK_STREAM;
182 + hints.ai_protocol = IPPROTO_TCP;
184 + gai = getaddrinfo(host, port, &hints, &ai);
186 + die("Unable to look up %s (%s)", host, gai_strerror(gai));
188 + for (ai0 = ai; ai; ai = ai->ai_next) {
189 + sockfd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
192 + if (connect(sockfd, ai->ai_addr, ai->ai_addrlen) < 0) {
200 - lookup_host(host, &addr);
201 - ((struct sockaddr_in *)&addr)->sin_port = htons(port);
204 - sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
206 die("unable to create socket (%s)", strerror(errno));
207 - if (connect(sockfd, (void *)&addr, sizeof(addr)) < 0)
208 - die("unable to connect (%s)", strerror(errno));
212 packet_write(sockfd, "%s %s\n", prog, path);
215 YOSHIFUJI Hideaki @ USAGI Project <yoshfuji@linux-ipv6.org>
216 GPG-FP : 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA
218 From nobody Sat Aug 27 23:07:49 2005
219 Path: news.gmane.org!not-for-mail
220 Message-ID: <u5tacjjdpxq.fsf@lysator.liu.se>
221 From: =?ISO8859-1?Q?David_K=E5gedal?= <davidk@lysator.liu.se>
222 Newsgroups: gmane.comp.version-control.git
223 Subject: [PATCH] Fixed two bugs in git-cvsimport-script.
224 Date: Mon, 15 Aug 2005 20:18:25 +0200
226 Approved: news@gmane.org
227 NNTP-Posting-Host: main.gmane.org
229 Content-Type: text/plain; charset=ISO8859-1
230 Content-Transfer-Encoding: QUOTED-PRINTABLE
231 X-Trace: sea.gmane.org 1124130247 31839 80.91.229.2 (15 Aug 2005 18:24:07 GMT)
232 X-Complaints-To: usenet@sea.gmane.org
233 NNTP-Posting-Date: Mon, 15 Aug 2005 18:24:07 +0000 (UTC)
234 Cc: "Junio C. Hamano" <junkio@cox.net>
235 Original-X-From: git-owner@vger.kernel.org Mon Aug 15 20:24:05 2005
237 The git-cvsimport-script had a copule of small bugs that prevented me
238 from importing a big CVS repository.
240 The first was that it didn't handle removed files with a multi-digit
241 primary revision number.
243 The second was that it was asking the CVS server for "F" messages,
244 although they were not handled.
246 I also updated the documentation for that script to correspond to
249 Signed-off-by: David K=E5gedal <davidk@lysator.liu.se>
252 Documentation/git-cvsimport-script.txt | 9 ++++++++-
253 git-cvsimport-script | 4 ++--
254 2 files changed, 10 insertions(+), 3 deletions(-)
256 50452f9c0c2df1f04d83a26266ba704b13861632
257 diff --git a/Documentation/git-cvsimport-script.txt b/Documentation/git=
258 -cvsimport-script.txt
259 --- a/Documentation/git-cvsimport-script.txt
260 +++ b/Documentation/git-cvsimport-script.txt
261 @@ -29,6 +29,10 @@ OPTIONS
262 currently, only the :local:, :ext: and :pserver: access methods=20
266 + The GIT repository to import to. If the directory doesn't
267 + exist, it will be created. Default is the current directory.
270 Import-only: don't perform a checkout after importing. This option
271 ensures the working directory and cache remain untouched and will
272 @@ -44,7 +48,7 @@ OPTIONS
274 -p <options-for-cvsps>::
275 Additional options for cvsps.
276 - The options '-x' and '-A' are implicit and should not be used here.
277 + The options '-u' and '-A' are implicit and should not be used here.
279 If you need to pass multiple options, separate them with a comma.
281 @@ -57,6 +61,9 @@ OPTIONS
283 Print a short usage message and exit.
286 + Pass the timestamp fuzz factor to cvsps.
290 If '-v' is specified, the script reports what it is doing.
291 diff --git a/git-cvsimport-script b/git-cvsimport-script
292 --- a/git-cvsimport-script
293 +++ b/git-cvsimport-script
294 @@ -190,7 +190,7 @@ sub conn {
295 $self->{'socketo'}->write("Root $repo\n");
297 # Trial and error says that this probably is the minimum set
298 - $self->{'socketo'}->write("Valid-responses ok error Valid-requests Mo=
299 de M Mbinary E F Checked-in Created Updated Merged Removed\n");
300 + $self->{'socketo'}->write("Valid-responses ok error Valid-requests Mo=
301 de M Mbinary E Checked-in Created Updated Merged Removed\n");
303 $self->{'socketo'}->write("valid-requests\n");
304 $self->{'socketo'}->flush();
305 @@ -691,7 +691,7 @@ while(<CVS>) {
307 my $mode =3D pmode($cvs->{'mode'});
308 push(@new,[$mode, $sha, $fn]); # may be resurrected!
309 - } elsif($state =3D=3D 9 and /^\s+(\S+):\d(?:\.\d+)+->(\d(?:\.\d+)+)\(=
311 + } elsif($state =3D=3D 9 and /^\s+(\S+):\d+(?:\.\d+)+->(\d+(?:\.\d+)+)=
320 To unsubscribe from this list: send the line "unsubscribe git" in
321 the body of a message to majordomo@vger.kernel.org
322 More majordomo info at http://vger.kernel.org/majordomo-info.html
324 From nobody Mon Sep 17 00:00:00 2001
325 From: A U Thor <a.u.thor@example.com>
326 References: <Pine.LNX.4.640.0001@woody.linux-foundation.org>
327 <Pine.LNX.4.640.0002@woody.linux-foundation.org>
328 <Pine.LNX.4.640.0003@woody.linux-foundation.org>
329 <Pine.LNX.4.640.0004@woody.linux-foundation.org>
330 <Pine.LNX.4.640.0005@woody.linux-foundation.org>
331 <Pine.LNX.4.640.0006@woody.linux-foundation.org>
332 <Pine.LNX.4.640.0007@woody.linux-foundation.org>
333 <Pine.LNX.4.640.0008@woody.linux-foundation.org>
334 <Pine.LNX.4.640.0009@woody.linux-foundation.org>
335 <Pine.LNX.4.640.0010@woody.linux-foundation.org>
336 <Pine.LNX.4.640.0011@woody.linux-foundation.org>
337 <Pine.LNX.4.640.0012@woody.linux-foundation.org>
338 <Pine.LNX.4.640.0013@woody.linux-foundation.org>
339 <Pine.LNX.4.640.0014@woody.linux-foundation.org>
340 <Pine.LNX.4.640.0015@woody.linux-foundation.org>
341 <Pine.LNX.4.640.0016@woody.linux-foundation.org>
342 <Pine.LNX.4.640.0017@woody.linux-foundation.org>
343 <Pine.LNX.4.640.0018@woody.linux-foundation.org>
344 <Pine.LNX.4.640.0019@woody.linux-foundation.org>
345 <Pine.LNX.4.640.0020@woody.linux-foundation.org>
346 <Pine.LNX.4.640.0021@woody.linux-foundation.org>
347 <Pine.LNX.4.640.0022@woody.linux-foundation.org>
348 <Pine.LNX.4.640.0023@woody.linux-foundation.org>
349 <Pine.LNX.4.640.0024@woody.linux-foundation.org>
350 <Pine.LNX.4.640.0025@woody.linux-foundation.org>
351 <Pine.LNX.4.640.0026@woody.linux-foundation.org>
352 <Pine.LNX.4.640.0027@woody.linux-foundation.org>
353 <Pine.LNX.4.640.0028@woody.linux-foundation.org>
354 <Pine.LNX.4.640.0029@woody.linux-foundation.org>
355 <Pine.LNX.4.640.0030@woody.linux-foundation.org>
356 <Pine.LNX.4.640.0031@woody.linux-foundation.org>
357 <Pine.LNX.4.640.0032@woody.linux-foundation.org>
358 <Pine.LNX.4.640.0033@woody.linux-foundation.org>
359 <Pine.LNX.4.640.0034@woody.linux-foundation.org>
360 <Pine.LNX.4.640.0035@woody.linux-foundation.org>
361 <Pine.LNX.4.640.0036@woody.linux-foundation.org>
362 <Pine.LNX.4.640.0037@woody.linux-foundation.org>
363 <Pine.LNX.4.640.0038@woody.linux-foundation.org>
364 <Pine.LNX.4.640.0039@woody.linux-foundation.org>
365 <Pine.LNX.4.640.0040@woody.linux-foundation.org>
366 <Pine.LNX.4.640.0041@woody.linux-foundation.org>
367 <Pine.LNX.4.640.0042@woody.linux-foundation.org>
368 <Pine.LNX.4.640.0043@woody.linux-foundation.org>
369 <Pine.LNX.4.640.0044@woody.linux-foundation.org>
370 <Pine.LNX.4.640.0045@woody.linux-foundation.org>
371 <Pine.LNX.4.640.0046@woody.linux-foundation.org>
372 <Pine.LNX.4.640.0047@woody.linux-foundation.org>
373 <Pine.LNX.4.640.0048@woody.linux-foundation.org>
374 <Pine.LNX.4.640.0049@woody.linux-foundation.org>
375 <Pine.LNX.4.640.0050@woody.linux-foundation.org>
376 Date: Fri, 9 Jun 2006 00:44:16 -0700
377 Subject: [PATCH] a commit.
379 Here is a patch from A U Thor.
383 1 files changed, 1 insertions(+), 1 deletions(-)
385 diff --git a/foo b/foo
386 index 9123cdc..918dcf8 100644
390 -Fri Jun 9 00:44:04 PDT 2006
391 +Fri Jun 9 00:44:13 PDT 2006
395 From nobody Mon Sep 17 00:00:00 2001
396 From: A U Thor <a.u.thor@example.com>
397 Date: Fri, 9 Jun 2006 00:44:16 -0700
398 Subject: [PATCH] another patch
400 Here is an empty patch from A U Thor.
402 From nobody Mon Sep 17 00:00:00 2001
403 From: Junio C Hamano <junio@kernel.org>
404 Date: Fri, 9 Jun 2006 00:44:16 -0700
405 Subject: re: [PATCH] another patch
407 From: A U Thor <a.u.thor@example.com>
408 Subject: [PATCH] another patch
409 >Here is an empty patch from A U Thor.
411 Hey you forgot the patch!
413 From nobody Mon Sep 17 00:00:00 2001
414 From: A U Thor <a.u.thor@example.com>
415 Date: Mon, 17 Sep 2001 00:00:00 +0900
417 Content-Type: Text/Plain; charset=us-ascii
418 Content-Transfer-Encoding: Quoted-Printable
420 =0A=0AFrom: F U Bar <f.u.bar@example.com>
421 Subject: [PATCH] updates=0A=0AThis is to fix diff-format documentation.
423 diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
424 index b426a14..97756ec 100644
425 --- a/Documentation/diff-format.txt
426 +++ b/Documentation/diff-format.txt
427 @@ -81,7 +81,7 @@ The "diff" formatting options can be customized via the
428 environment variable 'GIT_DIFF_OPTS'. For example, if you
431 - GIT_DIFF_OPTS=3D-c git-diff-index -p $(cat .git/HEAD)
432 + GIT_DIFF_OPTS=3D-c git-diff-index -p HEAD
435 2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
436 From b9704a518e21158433baa2cc2d591fea687967f6 Mon Sep 17 00:00:00 2001
437 From: =?UTF-8?q?Lukas=20Sandstr=C3=B6m?= <lukass@etek.chalmers.se>
438 Date: Thu, 10 Jul 2008 23:41:33 +0200
439 Subject: Re: discussion that lead to this patch
441 Content-Type: text/plain; charset=UTF-8
442 Content-Transfer-Encoding: 8bit
444 [PATCH] git-mailinfo: Fix getting the subject from the body
446 "Subject: " isn't in the static array "header", and thus
447 memcmp("Subject: ", header[i], 7) will never match.
449 Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
450 Signed-off-by: Junio C Hamano <gitster@pobox.com>
452 builtin-mailinfo.c | 2 +-
453 1 files changed, 1 insertions(+), 1 deletions(-)
455 diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
456 index 962aa34..2d1520f 100644
457 --- a/builtin-mailinfo.c
458 +++ b/builtin-mailinfo.c
459 @@ -334,7 +334,7 @@ static int check_header(char *line, unsigned linesize, char **hdr_data, int over
461 if (!memcmp("[PATCH]", line, 7) && isspace(line[7])) {
462 for (i = 0; header[i]; i++) {
463 - if (!memcmp("Subject: ", header[i], 9)) {
464 + if (!memcmp("Subject", header[i], 7)) {
465 if (! handle_header(line, hdr_data[i], 0)) {
471 From nobody Fri Aug 8 22:24:03 2008
472 Date: Fri, 8 Aug 2008 13:08:37 +0200 (CEST)
473 From: A U Thor <a.u.thor@example.com>
474 Subject: [PATCH 3/3 v2] Xyzzy
476 Content-Type: multipart/mixed; boundary="=-=-="
479 Content-Type: text/plain; charset=ISO8859-15
480 Content-Transfer-Encoding: quoted-printable
482 Here comes a commit log message, and
483 its second line is here.
485 builtin-mailinfo.c | 4 ++--
487 diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
488 index 3e5fe51..aabfe5c 100644
489 --- a/builtin-mailinfo.c
490 +++ b/builtin-mailinfo.c
491 @@ -758,8 +758,8 @@ static void handle_body(void)
492 /* process any boundary lines */
493 if (*content_top && is_multipart_boundary(&line)) {
494 /* flush any leftover */
496 - handle_filter(&line);
498 + handle_filter(&prev);
500 if (!handle_boundary())
501 goto handle_body_out;
507 From bda@mnsspb.ru Wed Nov 12 17:54:41 2008
508 From: Dmitriy Blinov <bda@mnsspb.ru>
509 To: navy-patches@dinar.mns.mnsspb.ru
510 Date: Wed, 12 Nov 2008 17:54:41 +0300
511 Message-Id: <1226501681-24923-1-git-send-email-bda@mnsspb.ru>
512 X-Mailer: git-send-email 1.5.6.5
514 Content-Type: text/plain;
516 Content-Transfer-Encoding: 8bit
517 Subject: [Navy-patches] [PATCH]
518 =?utf-8?b?0JjQt9C80LXQvdGR0L0g0YHQv9C40YHQvtC6INC/0LA=?=
519 =?utf-8?b?0LrQtdGC0L7QsiDQvdC10L7QsdGF0L7QtNC40LzRi9GFINC00LvRjyA=?=
520 =?utf-8?b?0YHQsdC+0YDQutC4?=
522 textlive-* исправлены на texlive-*
523 docutils заменён на python-docutils
525 Действительно, оказалось, что rest2web вытягивает за собой
526 python-docutils. В то время как сам rest2web не нужен.
528 Signed-off-by: Dmitriy Blinov <bda@mnsspb.ru>
530 howto/build_navy.txt | 6 +++---
531 1 files changed, 3 insertions(+), 3 deletions(-)
533 diff --git a/howto/build_navy.txt b/howto/build_navy.txt
534 index 3fd3afb..0ee807e 100644
535 --- a/howto/build_navy.txt
536 +++ b/howto/build_navy.txt
541 - - textlive-lang-cyrillic
542 - - textlive-latex-extra
543 + - texlive-lang-cyrillic
544 + - texlive-latex-extra
555 #. на машине dinar: добавить свой открытый ssh-ключ в authorized_keys2 пользователя ddev
556 #. на своей машине: отредактировать /etc/sudoers (команда ``visudo``) примерно следующим образом::
559 From nobody Mon Sep 17 00:00:00 2001
560 From: <a.u.thor@example.com> (A U Thor)
561 Date: Fri, 9 Jun 2006 00:44:16 -0700
562 Subject: [PATCH] a patch
564 From nobody Mon Sep 17 00:00:00 2001
565 From: Junio Hamano <junkio@cox.net>
566 Date: Thu, 20 Aug 2009 17:18:22 -0700
567 Subject: Why doesn't git-am does not like >8 scissors mark?
569 Subject: [PATCH] BLAH ONE
571 In real life, we will see a discussion that inspired this patch
572 discussing related and unrelated things around >8 scissors mark
573 in this part of the message.
575 Subject: [PATCH] BLAH TWO
577 And then we will see the scissors.
579 This line is not a scissors mark -- >8 -- but talks about it.
580 - - >8 - - please remove everything above this line - - >8 - -
582 Subject: [PATCH] Teach mailinfo to ignore everything before -- >8 -- mark
583 From: Junio C Hamano <gitster@pobox.com>
585 This teaches mailinfo the scissors -- >8 -- mark; the command ignores
586 everything before it in the message body.
588 Signed-off-by: Junio C Hamano <gitster@pobox.com>
590 builtin-mailinfo.c | 37 ++++++++++++++++++++++++++++++++++++-
591 1 files changed, 36 insertions(+), 1 deletions(-)
593 diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
594 index b0b5d8f..461c47e 100644
595 --- a/builtin-mailinfo.c
596 +++ b/builtin-mailinfo.c
597 @@ -712,6 +712,34 @@ static inline int patchbreak(const struct strbuf *line)
601 +static int scissors(const struct strbuf *line)
603 + size_t i, len = line->len;
604 + int scissors_dashes_seen = 0;
605 + const char *buf = line->buf;
607 + for (i = 0; i < len; i++) {
608 + if (isspace(buf[i]))
610 + if (buf[i] == '-') {
611 + scissors_dashes_seen |= 02;
614 + if (i + 1 < len && !memcmp(buf + i, ">8", 2)) {
615 + scissors_dashes_seen |= 01;
619 + if (i + 7 < len && !memcmp(buf + i, "cut here", 8)) {
623 + /* everything else --- not scissors */
626 + return scissors_dashes_seen == 03;
629 static int handle_commit_msg(struct strbuf *line)
631 static int still_looking = 1;
632 @@ -723,10 +751,17 @@ static int handle_commit_msg(struct strbuf *line)
636 - if ((still_looking = check_header(line, s_hdr_data, 0)) != 0)
637 + still_looking = check_header(line, s_hdr_data, 0);
642 + if (scissors(line)) {
643 + fseek(cmitmsg, 0L, SEEK_SET);
648 /* normalize the log message to UTF-8. */
649 if (metainfo_charset)
650 convert_to_utf8(line, charset.buf);
653 From nobody Mon Sep 17 00:00:00 2001
654 From: A U Thor <a.u.thor@example.com>
655 Subject: check bogus body header (from)
656 Date: Fri, 9 Jun 2006 00:44:16 -0700
662 diff --git a/foo b/foo
663 index e69de29..d95f3ad 100644
669 From nobody Mon Sep 17 00:00:00 2001
670 From: A U Thor <a.u.thor@example.com>
671 Subject: check bogus body header (date)
672 Date: Fri, 9 Jun 2006 00:44:16 -0700
679 diff --git a/foo b/foo
680 index e69de29..d95f3ad 100644
686 From nobody Mon Sep 17 00:00:00 2001
687 From: A U Thor <a.u.thor@example.com>
689 Date: Mon, 17 Sep 2012 14:23:44 -0700
691 Content-Type: text/plain; charset="iso-2022-jp"
692 Content-type: text/plain; charset="UTF-8"
696 diff --git a/foo b/foo
697 index e69de29..d95f3ad 100644
702 From nobody Mon Sep 17 00:00:00 2001
703 From: A U Thor <a.u.thor@example.com>
704 Subject: check multiline inbody headers
705 Date: Fri, 9 Jun 2006 00:44:16 -0700
709 Subject: This one contains
715 diff --git a/foo b/foo
716 index e69de29..d95f3ad 100644