зеркало из https://github.com/microsoft/git.git
t5100: mailinfo and mailsplit tests.
Currently the test passes with 1.3.3 but not with the tip of "master". This is to verify the fixes from Eric W Biedermann. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
f0338bbd82
Коммит
4839c0b5fa
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005 Junio C Hamano
|
||||||
|
#
|
||||||
|
|
||||||
|
test_description='git-mailinfo and git-mailsplit test'
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
test_expect_success 'split sample box' \
|
||||||
|
'git-mailsplit -o. ../t5100/sample.mbox >last &&
|
||||||
|
last=`cat last` &&
|
||||||
|
echo total is $last &&
|
||||||
|
test `cat last` = 5'
|
||||||
|
|
||||||
|
for mail in `echo 00*`
|
||||||
|
do
|
||||||
|
test_expect_success "mailinfo $mail" \
|
||||||
|
"git-mailinfo -u msg$mail patch$mail <$mail >info$mail &&
|
||||||
|
echo msg &&
|
||||||
|
diff ../t5100/msg$mail msg$mail &&
|
||||||
|
echo patch &&
|
||||||
|
diff ../t5100/patch$mail patch$mail &&
|
||||||
|
echo info &&
|
||||||
|
diff ../t5100/info$mail info$mail"
|
||||||
|
done
|
||||||
|
|
||||||
|
test_done
|
|
@ -0,0 +1,5 @@
|
||||||
|
Author: A U Thor
|
||||||
|
Email: a.u.thor@example.com
|
||||||
|
Subject: a commit.
|
||||||
|
Date: Fri, 9 Jun 2006 00:44:16 -0700
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Author: A U Thor
|
||||||
|
Email: a.u.thor@example.com
|
||||||
|
Subject: another patch
|
||||||
|
Date: Fri, 9 Jun 2006 00:44:16 -0700
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Author: A U Thor
|
||||||
|
Email: a.u.thor@example.com
|
||||||
|
Subject: third patch
|
||||||
|
Date: Fri, 9 Jun 2006 00:44:16 -0700
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Author: YOSHIFUJI Hideaki / 吉藤英明
|
||||||
|
Email: yoshfuji@linux-ipv6.org
|
||||||
|
Subject: GIT: Try all addresses for given remote name
|
||||||
|
Date: Thu, 21 Jul 2005 09:10:36 -0400 (EDT)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
Author: David Kågedal
|
||||||
|
Email: davidk@lysator.liu.se
|
||||||
|
Subject: Fixed two bugs in git-cvsimport-script.
|
||||||
|
Date: Mon, 15 Aug 2005 20:18:25 +0200
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Here is a patch from A U Thor.
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
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.
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
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.
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
Hello.
|
||||||
|
|
||||||
|
Try all addresses for given remote name until it succeeds.
|
||||||
|
Also supports IPv6.
|
||||||
|
|
||||||
|
Signed-of-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
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ågedal <davidk@lysator.liu.se>
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
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
|
||||||
|
are supported.
|
||||||
|
|
||||||
|
+-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
|
||||||
|
|
||||||
|
-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.
|
||||||
|
|
||||||
|
If you need to pass multiple options, separate them with a comma.
|
||||||
|
|
||||||
|
@@ -57,6 +61,9 @@ OPTIONS
|
||||||
|
-h::
|
||||||
|
Print a short usage message and exit.
|
||||||
|
|
||||||
|
+-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");
|
||||||
|
|
||||||
|
# Trial and error says that this probably is the minimum set
|
||||||
|
- $self->{'socketo'}->write("Valid-responses ok error Valid-requests Mode M Mbinary E F Checked-in Created Updated Merged Removed\n");
|
||||||
|
+ $self->{'socketo'}->write("Valid-responses ok error Valid-requests Mode M Mbinary E Checked-in Created Updated Merged Removed\n");
|
||||||
|
|
||||||
|
$self->{'socketo'}->write("valid-requests\n");
|
||||||
|
$self->{'socketo'}->flush();
|
||||||
|
@@ -691,7 +691,7 @@ while(<CVS>) {
|
||||||
|
unlink($tmpname);
|
||||||
|
my $mode = pmode($cvs->{'mode'});
|
||||||
|
push(@new,[$mode, $sha, $fn]); # may be resurrected!
|
||||||
|
- } elsif($state == 9 and /^\s+(\S+):\d(?:\.\d+)+->(\d(?:\.\d+)+)\(DEAD\)\s*$/) {
|
||||||
|
+ } elsif($state == 9 and /^\s+(\S+):\d+(?:\.\d+)+->(\d+(?:\.\d+)+)\(DEAD\)\s*$/) {
|
||||||
|
my $fn = $1;
|
||||||
|
$fn =~ s#^/+##;
|
||||||
|
push(@old,$fn);
|
||||||
|
|
||||||
|
--
|
||||||
|
David Kågedal
|
||||||
|
-
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,317 @@
|
||||||
|
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] 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: =?iso-8859-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=iso-8859-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
|
||||||
|
|
Загрузка…
Ссылка в новой задаче