From: Eric Wong <normalperson@yhbt.net>
To: Junio C Hamano <junkio@cox.net>
Cc: Chris Lee <chris133@gmail.com>, Git Mailing List <git@vger.kernel.org>
Subject: [PATCH] git-svn: make --repack work consistently between fetch and multi-fetch
Date: Thu, 4 Jan 2007 18:09:56 -0800 [thread overview]
Message-ID: <20070105020955.GA27984@localdomain> (raw)
In-Reply-To: <20070104023350.GA1194@localdomain>
Since fetch reforks itself at most every 1000 revisions, we
need to update the counter in the parent process to have a
working count if we set our repack interval to be > ~1000
revisions. multi-fetch has always done this correctly
because of an extra process; now fetch uses the extra process;
as well.
While we're at it, only compile the $sha1 regex that checks for
repacking once.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
I wrote:
> Just set the repack interval to something smaller than 1000;
> (--repack=100) if you experience timeouts.
Chris: you shouldn't get timeouts (at least not across HTTP(s)).
Also, don't worry about repack=100 either; there was a bug that
was triggered only in 'fetch' not 'multi-fetch' (you should use
'multi-fetch'). This patch fixes the 'fetch' bug.
git-svn.perl | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index 0fc386a..5377762 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -102,7 +102,7 @@ my %cmt_opts = ( 'edit|e' => \$_edit,
);
my %cmd = (
- fetch => [ \&fetch, "Download new revisions from SVN",
+ fetch => [ \&cmd_fetch, "Download new revisions from SVN",
{ 'revision|r=s' => \$_revision, %fc_opts } ],
init => [ \&init, "Initialize a repo for tracking" .
" (requires URL argument)",
@@ -293,6 +293,10 @@ sub init {
setup_git_svn();
}
+sub cmd_fetch {
+ fetch_child_id($GIT_SVN, @_);
+}
+
sub fetch {
check_upgrade_needed();
$SVN_URL ||= file_to_s("$GIT_SVN_DIR/info/url");
@@ -836,7 +840,6 @@ sub fetch_child_id {
my $ref = "$GIT_DIR/refs/remotes/$id";
defined(my $pid = open my $fh, '-|') or croak $!;
if (!$pid) {
- $_repack = undef;
$GIT_SVN = $ENV{GIT_SVN_ID} = $id;
init_vars();
fetch(@_);
@@ -844,7 +847,7 @@ sub fetch_child_id {
}
while (<$fh>) {
print $_;
- check_repack() if (/^r\d+ = $sha1/);
+ check_repack() if (/^r\d+ = $sha1/o);
}
close $fh or croak $?;
}
@@ -1407,7 +1410,6 @@ sub git_commit {
# this output is read via pipe, do not change:
print "r$log_msg->{revision} = $commit\n";
- check_repack();
return $commit;
}
--
1.5.0.rc0.g0d67
next prev parent reply other threads:[~2007-01-05 2:10 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-03 23:52 git-svnimport failed and now git-repack hates me Chris Lee
2007-01-04 1:59 ` Linus Torvalds
2007-01-04 2:06 ` Shawn O. Pearce
2007-01-04 2:35 ` Shawn O. Pearce
2007-01-04 2:36 ` Chris Lee
2007-01-04 2:45 ` Shawn O. Pearce
2007-01-04 2:53 ` Chris Lee
2007-01-04 2:57 ` Shawn O. Pearce
2007-01-04 2:58 ` Chris Lee
2007-01-04 3:05 ` Shawn O. Pearce
2007-01-04 3:06 ` Chris Lee
2007-01-04 2:16 ` Chris Lee
2007-01-04 17:56 ` Chris Lee
2007-01-04 18:30 ` Linus Torvalds
2007-01-04 18:54 ` Chris Lee
2007-01-04 2:33 ` Eric Wong
2007-01-04 2:40 ` Randal L. Schwartz
2007-01-04 3:13 ` Eric Wong
2007-01-05 2:09 ` Eric Wong [this message]
2007-01-04 6:25 ` Junio C Hamano
2007-01-04 7:26 ` [PATCH] pack-check.c::verify_packfile(): don't run SHA-1 update on huge data Junio C Hamano
2007-01-04 17:58 ` git-svnimport failed and now git-repack hates me Chris Lee
2007-01-04 20:22 ` Junio C Hamano
2007-01-05 17:19 ` Chris Lee
2007-01-05 19:05 ` Junio C Hamano
2007-01-05 19:33 ` Chris Lee
2007-01-05 19:39 ` Shawn O. Pearce
2007-01-05 20:48 ` Chris Lee
2007-01-05 21:37 ` Junio C Hamano
2007-01-05 21:57 ` Linus Torvalds
2007-01-05 22:18 ` alan
2007-01-07 0:36 ` Eric Wong
2007-01-05 22:39 ` Linus Torvalds
2007-01-05 22:48 ` Junio C Hamano
2007-01-05 23:00 ` Linus Torvalds
2007-01-05 23:02 ` Linus Torvalds
2007-01-05 23:44 ` Junio C Hamano
2007-01-05 23:59 ` Linus Torvalds
2007-01-06 0:06 ` Johannes Schindelin
2007-01-05 23:03 ` Chris Lee
2007-01-05 23:09 ` Junio C Hamano
2007-01-05 23:17 ` Linus Torvalds
2007-01-05 23:58 ` Junio C Hamano
2007-01-06 0:11 ` Linus Torvalds
2007-01-06 0:15 ` Linus Torvalds
2007-01-06 0:23 ` Junio C Hamano
2007-01-06 1:22 ` Linus Torvalds
2007-01-04 19:24 ` Chris Lee
2007-01-04 21:12 ` Linus Torvalds
2007-01-04 21:31 ` Sasha Khapyorsky
2007-01-04 22:04 ` Chris Lee
2007-01-07 0:17 ` [PATCH] git-svnimport: support for incremental import Sasha Khapyorsky
2007-01-07 18:12 ` Chris Lee
2007-01-07 18:59 ` Sasha Khapyorsky
2007-01-08 2:22 ` [PATCH] git-svnimport: fix edge revisions double importing Sasha Khapyorsky
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=20070105020955.GA27984@localdomain \
--to=normalperson@yhbt.net \
--cc=chris133@gmail.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.