|  |  | 
|  |  | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A (zzz) | 
|  | U | 
|  | Thor | 
|  | <a.u.thor@example.com> (Comment) | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: [PATCH] a commit. | 
|  |  | 
|  | Here is a patch from A U Thor. | 
|  |  | 
|  | --- | 
|  | foo | 2 +- | 
|  | 1 files changed, 1 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index 9123cdc..918dcf8 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -1 +1 @@ | 
|  | -Fri Jun  9 00:44:04 PDT 2006 | 
|  | +Fri Jun  9 00:44:13 PDT 2006 | 
|  | -- | 
|  | 1.4.0.g6f2b | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: [PATCH] another patch | 
|  |  | 
|  | Here is a patch from A U Thor.  This addresses the issue raised in the | 
|  | message: | 
|  |  | 
|  | From: Nit Picker <nit.picker@example.net> | 
|  | Subject: foo is too old | 
|  | Message-ID: <nitpicker.12121212@example.net> | 
|  |  | 
|  | Hopefully this would fix the problem stated there. | 
|  |  | 
|  |  | 
|  | I have included an extra blank line above, but it does not have to be | 
|  | stripped away here, along with the | 
|  | whitespaces at the end of the above line.  They are expected to be squashed | 
|  | when the message is made into a commit log by stripspace, | 
|  | Also, there are three blank lines after this paragraph, | 
|  | two truly blank and another full of spaces in between. | 
|  |  | 
|  |  | 
|  |  | 
|  | Hope this helps. | 
|  |  | 
|  | --- | 
|  | foo | 2 +- | 
|  | 1 files changed, 1 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index 9123cdc..918dcf8 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -1 +1 @@ | 
|  | -Fri Jun  9 00:44:04 PDT 2006 | 
|  | +Fri Jun  9 00:44:13 PDT 2006 | 
|  | -- | 
|  | 1.4.0.g6f2b | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: Junio C Hamano <junio@kernel.org> | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: re: [PATCH] another patch | 
|  |  | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: [PATCH] third patch | 
|  |  | 
|  | Here is a patch from A U Thor.  This addresses the issue raised in the | 
|  | message: | 
|  |  | 
|  | From: Nit Picker <nit.picker@example.net> | 
|  | Subject: foo is too old | 
|  | Message-ID: <nitpicker.12121212@example.net> | 
|  |  | 
|  | Hopefully this would fix the problem stated there. | 
|  |  | 
|  | --- | 
|  | foo | 2 +- | 
|  | 1 files changed, 1 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index 9123cdc..918dcf8 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -1 +1 @@ | 
|  | -Fri Jun  9 00:44:04 PDT 2006 | 
|  | +Fri Jun  9 00:44:13 PDT 2006 | 
|  | -- | 
|  | 1.4.0.g6f2b | 
|  |  | 
|  | From nobody Sat Aug 27 23:07:49 2005 | 
|  | Path: news.gmane.org!not-for-mail | 
|  | Message-ID: <20050721.091036.01119516.yoshfuji@linux-ipv6.org> | 
|  | From: YOSHIFUJI Hideaki / =?ISO-2022-JP?B?GyRCNUhGIzFRTEAbKEI=?= | 
|  | <yoshfuji@linux-ipv6.org> | 
|  | Newsgroups: gmane.comp.version-control.git | 
|  | Subject: [PATCH 1/2] GIT: Try all addresses for given remote name | 
|  | Date: Thu, 21 Jul 2005 09:10:36 -0400 (EDT) | 
|  | Lines: 99 | 
|  | Organization: USAGI/WIDE Project | 
|  | Approved: news@gmane.org | 
|  | NNTP-Posting-Host: main.gmane.org | 
|  | Mime-Version: 1.0 | 
|  | Content-Type: Text/Plain; charset=us-ascii | 
|  | Content-Transfer-Encoding: 7bit | 
|  | X-Trace: sea.gmane.org 1121951434 29350 80.91.229.2 (21 Jul 2005 13:10:34 GMT) | 
|  | X-Complaints-To: usenet@sea.gmane.org | 
|  | NNTP-Posting-Date: Thu, 21 Jul 2005 13:10:34 +0000 (UTC) | 
|  |  | 
|  | Hello. | 
|  |  | 
|  | Try all addresses for given remote name until it succeeds. | 
|  | Also supports IPv6. | 
|  |  | 
|  | Signed-of-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> | 
|  |  | 
|  | diff --git a/connect.c b/connect.c | 
|  | --- a/connect.c | 
|  | +++ b/connect.c | 
|  | @@ -96,42 +96,57 @@ static enum protocol get_protocol(const | 
|  | die("I don't handle protocol '%s'", name); | 
|  | } | 
|  |  | 
|  | -static void lookup_host(const char *host, struct sockaddr *in) | 
|  | -{ | 
|  | -	struct addrinfo *res; | 
|  | -	int ret; | 
|  | - | 
|  | -	ret = getaddrinfo(host, NULL, NULL, &res); | 
|  | -	if (ret) | 
|  | -		die("Unable to look up %s (%s)", host, gai_strerror(ret)); | 
|  | -	*in = *res->ai_addr; | 
|  | -	freeaddrinfo(res); | 
|  | -} | 
|  | +#define STR_(s)	# s | 
|  | +#define STR(s)	STR_(s) | 
|  |  | 
|  | static int git_tcp_connect(int fd[2], const char *prog, char *host, char *path) | 
|  | { | 
|  | -	struct sockaddr addr; | 
|  | -	int port = DEFAULT_GIT_PORT, sockfd; | 
|  | -	char *colon; | 
|  | - | 
|  | -	colon = strchr(host, ':'); | 
|  | -	if (colon) { | 
|  | -		char *end; | 
|  | -		unsigned long n = strtoul(colon+1, &end, 0); | 
|  | -		if (colon[1] && !*end) { | 
|  | -			*colon = 0; | 
|  | -			port = n; | 
|  | +	int sockfd = -1; | 
|  | +	char *colon, *end; | 
|  | +	char *port = STR(DEFAULT_GIT_PORT); | 
|  | +	struct addrinfo hints, *ai0, *ai; | 
|  | +	int gai; | 
|  | + | 
|  | +	if (host[0] == '[') { | 
|  | +		end = strchr(host + 1, ']'); | 
|  | +		if (end) { | 
|  | +			*end = 0; | 
|  | +			end++; | 
|  | +			host++; | 
|  | +		} else | 
|  | +			end = host; | 
|  | +	} else | 
|  | +		end = host; | 
|  | +	colon = strchr(end, ':'); | 
|  | + | 
|  | +	if (colon) | 
|  | +		port = colon + 1; | 
|  | + | 
|  | +	memset(&hints, 0, sizeof(hints)); | 
|  | +	hints.ai_socktype = SOCK_STREAM; | 
|  | +	hints.ai_protocol = IPPROTO_TCP; | 
|  | + | 
|  | +	gai = getaddrinfo(host, port, &hints, &ai); | 
|  | +	if (gai) | 
|  | +		die("Unable to look up %s (%s)", host, gai_strerror(gai)); | 
|  | + | 
|  | +	for (ai0 = ai; ai; ai = ai->ai_next) { | 
|  | +		sockfd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); | 
|  | +		if (sockfd < 0) | 
|  | +			continue; | 
|  | +		if (connect(sockfd, ai->ai_addr, ai->ai_addrlen) < 0) { | 
|  | +			close(sockfd); | 
|  | +			sockfd = -1; | 
|  | +			continue; | 
|  | } | 
|  | +		break; | 
|  | } | 
|  |  | 
|  | -	lookup_host(host, &addr); | 
|  | -	((struct sockaddr_in *)&addr)->sin_port = htons(port); | 
|  | +	freeaddrinfo(ai0); | 
|  |  | 
|  | -	sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_IP); | 
|  | if (sockfd < 0) | 
|  | die("unable to create socket (%s)", strerror(errno)); | 
|  | -	if (connect(sockfd, (void *)&addr, sizeof(addr)) < 0) | 
|  | -		die("unable to connect (%s)", strerror(errno)); | 
|  | + | 
|  | fd[0] = sockfd; | 
|  | fd[1] = sockfd; | 
|  | packet_write(sockfd, "%s %s\n", prog, path); | 
|  |  | 
|  | -- | 
|  | YOSHIFUJI Hideaki @ USAGI Project  <yoshfuji@linux-ipv6.org> | 
|  | GPG-FP  : 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA | 
|  |  | 
|  | From nobody Sat Aug 27 23:07:49 2005 | 
|  | Path: news.gmane.org!not-for-mail | 
|  | Message-ID: <u5tacjjdpxq.fsf@lysator.liu.se> | 
|  | From: =?ISO8859-1?Q?David_K=E5gedal?= <davidk@lysator.liu.se> | 
|  | Newsgroups: gmane.comp.version-control.git | 
|  | Subject: [PATCH] Fixed two bugs in git-cvsimport-script. | 
|  | Date: Mon, 15 Aug 2005 20:18:25 +0200 | 
|  | Lines: 83 | 
|  | Approved: news@gmane.org | 
|  | NNTP-Posting-Host: main.gmane.org | 
|  | Mime-Version: 1.0 | 
|  | Content-Type: text/plain; charset=ISO8859-1 | 
|  | Content-Transfer-Encoding: QUOTED-PRINTABLE | 
|  | X-Trace: sea.gmane.org 1124130247 31839 80.91.229.2 (15 Aug 2005 18:24:07 GMT) | 
|  | X-Complaints-To: usenet@sea.gmane.org | 
|  | NNTP-Posting-Date: Mon, 15 Aug 2005 18:24:07 +0000 (UTC) | 
|  | Cc: "Junio C. Hamano" <junkio@cox.net> | 
|  | Original-X-From: git-owner@vger.kernel.org Mon Aug 15 20:24:05 2005 | 
|  |  | 
|  | The git-cvsimport-script had a copule of small bugs that prevented me | 
|  | from importing a big CVS repository. | 
|  |  | 
|  | The first was that it didn't handle removed files with a multi-digit | 
|  | primary revision number. | 
|  |  | 
|  | The second was that it was asking the CVS server for "F" messages, | 
|  | although they were not handled. | 
|  |  | 
|  | I also updated the documentation for that script to correspond to | 
|  | actual flags. | 
|  |  | 
|  | Signed-off-by: David K=E5gedal <davidk@lysator.liu.se> | 
|  | --- | 
|  |  | 
|  | Documentation/git-cvsimport-script.txt | 9 ++++++++- | 
|  | git-cvsimport-script                   | 4 ++-- | 
|  | 2 files changed, 10 insertions(+), 3 deletions(-) | 
|  |  | 
|  | 50452f9c0c2df1f04d83a26266ba704b13861632 | 
|  | diff --git a/Documentation/git-cvsimport-script.txt b/Documentation/git= | 
|  | -cvsimport-script.txt | 
|  | --- a/Documentation/git-cvsimport-script.txt | 
|  | +++ b/Documentation/git-cvsimport-script.txt | 
|  | @@ -29,6 +29,10 @@ OPTIONS | 
|  | currently, only the :local:, :ext: and :pserver: access methods=20 | 
|  | are supported. | 
|  | =20 | 
|  | +-C <target-dir>:: | 
|  | +        The GIT repository to import to.  If the directory doesn't | 
|  | +        exist, it will be created.  Default is the current directory. | 
|  | + | 
|  | -i:: | 
|  | Import-only: don't perform a checkout after importing.  This option | 
|  | ensures the working directory and cache remain untouched and will | 
|  | @@ -44,7 +48,7 @@ OPTIONS | 
|  | =20 | 
|  | -p <options-for-cvsps>:: | 
|  | Additional options for cvsps. | 
|  | -	The options '-x' and '-A' are implicit and should not be used here. | 
|  | +	The options '-u' and '-A' are implicit and should not be used here. | 
|  | =20 | 
|  | If you need to pass multiple options, separate them with a comma. | 
|  | =20 | 
|  | @@ -57,6 +61,9 @@ OPTIONS | 
|  | -h:: | 
|  | Print a short usage message and exit. | 
|  | =20 | 
|  | +-z <fuzz>:: | 
|  | +        Pass the timestamp fuzz factor to cvsps. | 
|  | + | 
|  | OUTPUT | 
|  | ------ | 
|  | If '-v' is specified, the script reports what it is doing. | 
|  | diff --git a/git-cvsimport-script b/git-cvsimport-script | 
|  | --- a/git-cvsimport-script | 
|  | +++ b/git-cvsimport-script | 
|  | @@ -190,7 +190,7 @@ sub conn { | 
|  | $self->{'socketo'}->write("Root $repo\n"); | 
|  | =20 | 
|  | # Trial and error says that this probably is the minimum set | 
|  | -	$self->{'socketo'}->write("Valid-responses ok error Valid-requests Mo= | 
|  | de M Mbinary E F Checked-in Created Updated Merged Removed\n"); | 
|  | +	$self->{'socketo'}->write("Valid-responses ok error Valid-requests Mo= | 
|  | de M Mbinary E Checked-in Created Updated Merged Removed\n"); | 
|  | =20 | 
|  | $self->{'socketo'}->write("valid-requests\n"); | 
|  | $self->{'socketo'}->flush(); | 
|  | @@ -691,7 +691,7 @@ while(<CVS>) { | 
|  | unlink($tmpname); | 
|  | my $mode =3D pmode($cvs->{'mode'}); | 
|  | push(@new,[$mode, $sha, $fn]); # may be resurrected! | 
|  | -	} elsif($state =3D=3D 9 and /^\s+(\S+):\d(?:\.\d+)+->(\d(?:\.\d+)+)\(= | 
|  | DEAD\)\s*$/) { | 
|  | +	} elsif($state =3D=3D 9 and /^\s+(\S+):\d+(?:\.\d+)+->(\d+(?:\.\d+)+)= | 
|  | \(DEAD\)\s*$/) { | 
|  | my $fn =3D $1; | 
|  | $fn =3D~ s#^/+##; | 
|  | push(@old,$fn); | 
|  |  | 
|  | --=20 | 
|  | David K=E5gedal | 
|  | - | 
|  | To unsubscribe from this list: send the line "unsubscribe git" in | 
|  | the body of a message to majordomo@vger.kernel.org | 
|  | More majordomo info at  http://vger.kernel.org/majordomo-info.html | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | References: <Pine.LNX.4.640.0001@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0002@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0003@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0004@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0005@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0006@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0007@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0008@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0009@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0010@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0011@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0012@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0013@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0014@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0015@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0016@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0017@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0018@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0019@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0020@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0021@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0022@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0023@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0024@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0025@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0026@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0027@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0028@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0029@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0030@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0031@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0032@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0033@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0034@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0035@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0036@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0037@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0038@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0039@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0040@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0041@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0042@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0043@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0044@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0045@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0046@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0047@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0048@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0049@woody.linux-foundation.org> | 
|  | <Pine.LNX.4.640.0050@woody.linux-foundation.org> | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: [PATCH] a commit. | 
|  |  | 
|  | Here is a patch from A U Thor. | 
|  |  | 
|  | --- | 
|  | foo | 2 +- | 
|  | 1 files changed, 1 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index 9123cdc..918dcf8 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -1 +1 @@ | 
|  | -Fri Jun  9 00:44:04 PDT 2006 | 
|  | +Fri Jun  9 00:44:13 PDT 2006 | 
|  | -- | 
|  | 1.4.0.g6f2b | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: [PATCH] another patch | 
|  |  | 
|  | Here is an empty patch from A U Thor. | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: Junio C Hamano <junio@kernel.org> | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: re: [PATCH] another patch | 
|  |  | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: [PATCH] another patch | 
|  | >Here is an empty patch from A U Thor. | 
|  |  | 
|  | Hey you forgot the patch! | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Date: Mon, 17 Sep 2001 00:00:00 +0900 | 
|  | Mime-Version: 1.0 | 
|  | Content-Type: Text/Plain; charset=us-ascii | 
|  | Content-Transfer-Encoding: Quoted-Printable | 
|  |  | 
|  | =0A=0AFrom: F U Bar <f.u.bar@example.com> | 
|  | Subject: [PATCH] updates=0A=0AThis is to fix diff-format documentation. | 
|  |  | 
|  | diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt | 
|  | index b426a14..97756ec 100644 | 
|  | --- a/Documentation/diff-format.txt | 
|  | +++ b/Documentation/diff-format.txt | 
|  | @@ -81,7 +81,7 @@ The "diff" formatting options can be customized via the | 
|  | environment variable 'GIT_DIFF_OPTS'.  For example, if you | 
|  | prefer context diff: | 
|  | =20 | 
|  | -      GIT_DIFF_OPTS=3D-c git-diff-index -p $(cat .git/HEAD) | 
|  | +      GIT_DIFF_OPTS=3D-c git-diff-index -p HEAD | 
|  | =20 | 
|  | =20 | 
|  | 2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the | 
|  | From b9704a518e21158433baa2cc2d591fea687967f6 Mon Sep 17 00:00:00 2001 | 
|  | From: =?UTF-8?q?Lukas=20Sandstr=C3=B6m?= <lukass@etek.chalmers.se> | 
|  | Date: Thu, 10 Jul 2008 23:41:33 +0200 | 
|  | Subject: Re: discussion that lead to this patch | 
|  | MIME-Version: 1.0 | 
|  | Content-Type: text/plain; charset=UTF-8 | 
|  | Content-Transfer-Encoding: 8bit | 
|  |  | 
|  | [PATCH] git-mailinfo: Fix getting the subject from the body | 
|  |  | 
|  | "Subject: " isn't in the static array "header", and thus | 
|  | memcmp("Subject: ", header[i], 7) will never match. | 
|  |  | 
|  | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> | 
|  | Signed-off-by: Junio C Hamano <gitster@pobox.com> | 
|  | --- | 
|  | builtin-mailinfo.c | 2 +- | 
|  | 1 files changed, 1 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c | 
|  | index 962aa34..2d1520f 100644 | 
|  | --- a/builtin-mailinfo.c | 
|  | +++ b/builtin-mailinfo.c | 
|  | @@ -334,7 +334,7 @@ static int check_header(char *line, unsigned linesize, char **hdr_data, int over | 
|  | return 1; | 
|  | if (!memcmp("[PATCH]", line, 7) && isspace(line[7])) { | 
|  | for (i = 0; header[i]; i++) { | 
|  | -			if (!memcmp("Subject: ", header[i], 9)) { | 
|  | +			if (!memcmp("Subject", header[i], 7)) { | 
|  | if (! handle_header(line, hdr_data[i], 0)) { | 
|  | return 1; | 
|  | } | 
|  | -- | 
|  | 1.5.6.2.455.g1efb2 | 
|  |  | 
|  | From nobody Fri Aug  8 22:24:03 2008 | 
|  | Date: Fri, 8 Aug 2008 13:08:37 +0200 (CEST) | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: [PATCH 3/3 v2] Xyzzy | 
|  | MIME-Version: 1.0 | 
|  | Content-Type: multipart/mixed; boundary="=-=-=" | 
|  |  | 
|  | --=-=-= | 
|  | Content-Type: text/plain; charset=ISO8859-15 | 
|  | Content-Transfer-Encoding: quoted-printable | 
|  |  | 
|  | Here comes a commit log message, and | 
|  | its second line is here. | 
|  | --- | 
|  | builtin-mailinfo.c  | 4 ++-- | 
|  |  | 
|  | diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c | 
|  | index 3e5fe51..aabfe5c 100644 | 
|  | --- a/builtin-mailinfo.c | 
|  | +++ b/builtin-mailinfo.c | 
|  | @@ -758,8 +758,8 @@ static void handle_body(void) | 
|  | /* process any boundary lines */ | 
|  | if (*content_top && is_multipart_boundary(&line)) { | 
|  | /* flush any leftover */ | 
|  | -			if (line.len) | 
|  | -				handle_filter(&line); | 
|  | +			if (prev.len) | 
|  | +				handle_filter(&prev); | 
|  | =20 | 
|  | if (!handle_boundary()) | 
|  | goto handle_body_out; | 
|  | --=20 | 
|  | 1.6.0.rc2 | 
|  |  | 
|  | --=-=-=-- | 
|  |  | 
|  | From bda@mnsspb.ru Wed Nov 12 17:54:41 2008 | 
|  | From: Dmitriy Blinov <bda@mnsspb.ru> | 
|  | To: navy-patches@dinar.mns.mnsspb.ru | 
|  | Date: Wed, 12 Nov 2008 17:54:41 +0300 | 
|  | Message-ID: <1226501681-24923-1-git-send-email-bda@mnsspb.ru> | 
|  | X-Mailer: git-send-email 1.5.6.5 | 
|  | MIME-Version: 1.0 | 
|  | Content-Type: text/plain; | 
|  | charset=utf-8 | 
|  | Content-Transfer-Encoding: 8bit | 
|  | Subject: [Navy-patches] [PATCH] | 
|  | =?utf-8?b?0JjQt9C80LXQvdGR0L0g0YHQv9C40YHQvtC6INC/0LA=?= | 
|  | =?utf-8?b?0LrQtdGC0L7QsiDQvdC10L7QsdGF0L7QtNC40LzRi9GFINC00LvRjyA=?= | 
|  | =?utf-8?b?0YHQsdC+0YDQutC4?= | 
|  |  | 
|  | textlive-* исправлены на texlive-* | 
|  | docutils заменён на python-docutils | 
|  |  | 
|  | Действительно, оказалось, что rest2web вытягивает за собой | 
|  | python-docutils. В то время как сам rest2web не нужен. | 
|  |  | 
|  | Signed-off-by: Dmitriy Blinov <bda@mnsspb.ru> | 
|  | --- | 
|  | howto/build_navy.txt |    6 +++--- | 
|  | 1 files changed, 3 insertions(+), 3 deletions(-) | 
|  |  | 
|  | diff --git a/howto/build_navy.txt b/howto/build_navy.txt | 
|  | index 3fd3afb..0ee807e 100644 | 
|  | --- a/howto/build_navy.txt | 
|  | +++ b/howto/build_navy.txt | 
|  | @@ -119,8 +119,8 @@ | 
|  | - libxv-dev | 
|  | - libusplash-dev | 
|  | - latex-make | 
|  | -   - textlive-lang-cyrillic | 
|  | -   - textlive-latex-extra | 
|  | +   - texlive-lang-cyrillic | 
|  | +   - texlive-latex-extra | 
|  | - dia | 
|  | - python-pyrex | 
|  | - libtool | 
|  | @@ -128,7 +128,7 @@ | 
|  | - sox | 
|  | - cython | 
|  | - imagemagick | 
|  | -   - docutils | 
|  | +   - python-docutils | 
|  |  | 
|  | #. на машине dinar: добавить свой открытый ssh-ключ в authorized_keys2 пользователя ddev | 
|  | #. на своей машине: отредактировать /etc/sudoers (команда ``visudo``) примерно следующим образом:: | 
|  | -- | 
|  | 1.5.6.5 | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: <a.u.thor@example.com> (A U Thor) | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  | Subject: [PATCH] a patch | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: Junio Hamano <junkio@cox.net> | 
|  | Date: Thu, 20 Aug 2009 17:18:22 -0700 | 
|  | Subject: Why doesn't git-am does not like >8 scissors mark? | 
|  |  | 
|  | Subject: [PATCH] BLAH ONE | 
|  |  | 
|  | In real life, we will see a discussion that inspired this patch | 
|  | discussing related and unrelated things around >8 scissors mark | 
|  | in this part of the message. | 
|  |  | 
|  | Subject: [PATCH] BLAH TWO | 
|  |  | 
|  | And then we will see the scissors. | 
|  |  | 
|  | This line is not a scissors mark -- >8 -- but talks about it. | 
|  | - - >8 - - please remove everything above this line - - >8 - - | 
|  |  | 
|  | Subject: [PATCH] Teach mailinfo to ignore everything before -- >8 -- mark | 
|  | From: Junio C Hamano <gitster@pobox.com> | 
|  |  | 
|  | This teaches mailinfo the scissors -- >8 -- mark; the command ignores | 
|  | everything before it in the message body. | 
|  |  | 
|  | Signed-off-by: Junio C Hamano <gitster@pobox.com> | 
|  | --- | 
|  | builtin-mailinfo.c | 37 ++++++++++++++++++++++++++++++++++++- | 
|  | 1 files changed, 36 insertions(+), 1 deletions(-) | 
|  |  | 
|  | diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c | 
|  | index b0b5d8f..461c47e 100644 | 
|  | --- a/builtin-mailinfo.c | 
|  | +++ b/builtin-mailinfo.c | 
|  | @@ -712,6 +712,34 @@ static inline int patchbreak(const struct strbuf *line) | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | +static int scissors(const struct strbuf *line) | 
|  | +{ | 
|  | +	size_t i, len = line->len; | 
|  | +	int scissors_dashes_seen = 0; | 
|  | +	const char *buf = line->buf; | 
|  | + | 
|  | +	for (i = 0; i < len; i++) { | 
|  | +		if (isspace(buf[i])) | 
|  | +			continue; | 
|  | +		if (buf[i] == '-') { | 
|  | +			scissors_dashes_seen |= 02; | 
|  | +			continue; | 
|  | +		} | 
|  | +		if (i + 1 < len && !memcmp(buf + i, ">8", 2)) { | 
|  | +			scissors_dashes_seen |= 01; | 
|  | +			i++; | 
|  | +			continue; | 
|  | +		} | 
|  | +		if (i + 7 < len && !memcmp(buf + i, "cut here", 8)) { | 
|  | +			i += 7; | 
|  | +			continue; | 
|  | +		} | 
|  | +		/* everything else --- not scissors */ | 
|  | +		break; | 
|  | +	} | 
|  | +	return scissors_dashes_seen == 03; | 
|  | +} | 
|  | + | 
|  | static int handle_commit_msg(struct strbuf *line) | 
|  | { | 
|  | static int still_looking = 1; | 
|  | @@ -723,10 +751,17 @@ static int handle_commit_msg(struct strbuf *line) | 
|  | strbuf_ltrim(line); | 
|  | if (!line->len) | 
|  | return 0; | 
|  | -		if ((still_looking = check_header(line, s_hdr_data, 0)) != 0) | 
|  | +		still_looking = check_header(line, s_hdr_data, 0); | 
|  | +		if (still_looking) | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | +	if (scissors(line)) { | 
|  | +		fseek(cmitmsg, 0L, SEEK_SET); | 
|  | +		still_looking = 1; | 
|  | +		return 0; | 
|  | +	} | 
|  | + | 
|  | /* normalize the log message to UTF-8. */ | 
|  | if (metainfo_charset) | 
|  | convert_to_utf8(line, charset.buf); | 
|  | -- | 
|  | 1.6.4.1 | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: check bogus body header (from) | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  |  | 
|  | From: bogosity | 
|  | - a list | 
|  | - of stuff | 
|  | --- | 
|  | diff --git a/foo b/foo | 
|  | index e69de29..d95f3ad 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -0,0 +1 @@ | 
|  | +content | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: check bogus body header (date) | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  |  | 
|  | Date: bogus | 
|  |  | 
|  | and some content | 
|  |  | 
|  | --- | 
|  | diff --git a/foo b/foo | 
|  | index e69de29..d95f3ad 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -0,0 +1 @@ | 
|  | +content | 
|  |  | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: A E I O U | 
|  | Date: Mon, 17 Sep 2012 14:23:44 -0700 | 
|  | MIME-Version: 1.0 | 
|  | Content-Type: text/plain; charset="iso-2022-jp" | 
|  | Content-type: text/plain; charset="UTF-8" | 
|  |  | 
|  | New content here | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index e69de29..d95f3ad 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -0,0 +1 @@ | 
|  | +New content | 
|  | From nobody Mon Sep 17 00:00:00 2001 | 
|  | From: A U Thor <a.u.thor@example.com> | 
|  | Subject: check multiline inbody headers | 
|  | Date: Fri, 9 Jun 2006 00:44:16 -0700 | 
|  |  | 
|  | From: Another Thor | 
|  | <a.thor@example.com> | 
|  | Subject: This one contains | 
|  | a tab | 
|  | and a space | 
|  |  | 
|  | a commit message | 
|  |  | 
|  | diff --git a/foo b/foo | 
|  | index e69de29..d95f3ad 100644 | 
|  | --- a/foo | 
|  | +++ b/foo | 
|  | @@ -0,0 +1 @@ | 
|  | +content |