Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-svn: add --repack and --repack-flags= options
author
Eric Wong
<normalperson@yhbt.net>
Wed, 24 May 2006 09:07:32 +0000
(
02:07
-0700)
committer
Eric Wong
<normalperson@yhbt.net>
Fri, 16 Jun 2006 10:04:20 +0000
(
03:04
-0700)
This should help keep disk usage sane for large imports.
--repack takes an optional argument for the interval, it
defaults to 1000 if no argument is specified.
Arguments to --repack-flags are passed directly to git-repack.
No arguments are passed by default.
Idea stolen from git-cvsimport :)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
contrib/git-svn/git-svn.perl
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
b8c92ca
)
diff --git
a/contrib/git-svn/git-svn.perl
b/contrib/git-svn/git-svn.perl
index a24306072e3663ee00ef6f1e7058a75996765d7e..a04cf1d354f9110e67f928a64262a0ee0cb270d7 100755
(executable)
--- a/
contrib/git-svn/git-svn.perl
+++ b/
contrib/git-svn/git-svn.perl
@@
-34,6
+34,7
@@
my $sha1_short = qr/[a-f\d]{4,40}/;
my ($_revision,$_stdin,$_no_ignore_ext,$_no_stop_copy,$_help,$_rmdir,$_edit,
$_find_copies_harder, $_l, $_cp_similarity,
my $sha1_short = qr/[a-f\d]{4,40}/;
my ($_revision,$_stdin,$_no_ignore_ext,$_no_stop_copy,$_help,$_rmdir,$_edit,
$_find_copies_harder, $_l, $_cp_similarity,
+ $_repack, $_repack_nr, $_repack_flags,
$_version, $_upgrade, $_authors, $_branch_all_refs);
my (@_branch_from, %tree_map, %users);
my ($_svn_co_url_revs, $_svn_pg_peg_revs);
$_version, $_upgrade, $_authors, $_branch_all_refs);
my (@_branch_from, %tree_map, %users);
my ($_svn_co_url_revs, $_svn_pg_peg_revs);
@@
-42,7
+43,9
@@
my %fc_opts = ( 'no-ignore-externals' => \$_no_ignore_ext,
'branch|b=s' => \@_branch_from,
'branch-all-refs|B' => \$_branch_all_refs,
my %fc_opts = ( 'no-ignore-externals' => \$_no_ignore_ext,
'branch|b=s' => \@_branch_from,
'branch-all-refs|B' => \$_branch_all_refs,
- 'authors-file|A=s' => \$_authors );
+ 'authors-file|A=s' => \$_authors,
+ 'repack:i' => \$_repack,
+ 'repack-flags|repack-args|repack-opts=s' => \$_repack_flags);
# yes, 'native' sets "\n". Patches to fix this for non-*nix systems welcome:
my %EOL = ( CR => "\015", LF => "\012", CRLF => "\015\012", native => "\012" );
# yes, 'native' sets "\n". Patches to fix this for non-*nix systems welcome:
my %EOL = ( CR => "\015", LF => "\012", CRLF => "\015\012", native => "\012" );
@@
-82,6
+85,7
@@
'version|V' => \$_version,
'id|i=s' => \$GIT_SVN) or exit 1;
'version|V' => \$_version,
'id|i=s' => \$GIT_SVN) or exit 1;
+set_default_vals();
usage(0) if $_help;
version() if $_version;
usage(1) unless defined $cmd;
usage(0) if $_help;
version() if $_version;
usage(1) unless defined $cmd;
@@
-1120,6
+1124,10
@@
sub git_commit {
sys(@update_ref);
sys('git-update-ref',"svn/$GIT_SVN/revs/$log_msg->{revision}",$commit);
print "r$log_msg->{revision} = $commit\n";
sys(@update_ref);
sys('git-update-ref',"svn/$GIT_SVN/revs/$log_msg->{revision}",$commit);
print "r$log_msg->{revision} = $commit\n";
+ if ($_repack && (--$_repack_nr == 0)) {
+ $_repack_nr = $_repack;
+ sys("git repack $_repack_flags");
+ }
return $commit;
}
return $commit;
}
@@
-1362,6
+1370,14
@@
sub read_repo_config {
}
}
}
}
+sub set_default_vals {
+ if (defined $_repack) {
+ $_repack = 1000 if ($_repack <= 0);
+ $_repack_nr = $_repack;
+ $_repack_flags ||= '';
+ }
+}
+
__END__
Data structures:
__END__
Data structures: