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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).