summaryrefslogtreecommitdiff
path: root/git-svn.perl
diff options
context:
space:
mode:
authorMichael G. Schwern <schwern@pobox.com>2012-07-26 17:26:02 -0700
committerEric Wong <normalperson@yhbt.net>2012-07-27 22:36:12 +0000
commitb0e75250c8c1fc40ba9d42c31ae99146f1cdeb71 (patch)
tree4199e99ba7357143e8045c711d4fcdcfaf6150fe /git-svn.perl
parentb74fda1c9b332b1216cc4d02ec256d6e350d5524 (diff)
downloadgit-b0e75250c8c1fc40ba9d42c31ae99146f1cdeb71.tar.gz
Prepare Git::SVN::Migration for extraction from git-svn.
* Load Git command functions on its own. * Load Git::SVN modules on its own. Drive by refactorings... * Use our() instead of use vars. * Eliminate the auto loading of Git functions. Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-xgit-svn.perl36
1 files changed, 24 insertions, 12 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 15e5f3c0fe..0266878120 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -14,6 +14,18 @@ use Git::SVN;
use Git::SVN::Log;
use Git::SVN::Utils qw(fatal can_compress);
+use Git qw(
+ git_cmd_try
+ command
+ command_oneline
+ command_noisy
+ command_output_pipe
+ command_close_pipe
+ command_bidi_pipe
+ command_close_bidi_pipe
+);
+
+
# From which subdir have we been invoked?
my $cmd_dir_prefix = eval {
command_oneline([qw/rev-parse --show-prefix/], STDERR => 0)
@@ -75,7 +87,6 @@ use File::Spec;
use File::Find;
use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
use IPC::Open3;
-use Git;
use Git::SVN::Editor qw//;
use Git::SVN::Fetcher qw//;
use Git::SVN::Ra qw//;
@@ -83,16 +94,6 @@ use Git::SVN::Prompt qw//;
use Memoize; # core since 5.8.0, Jul 2002
BEGIN {
- # import functions from Git into our packages, en masse
- no strict 'refs';
- foreach (qw/command command_oneline command_noisy command_output_pipe
- command_input_pipe command_close_pipe
- command_bidi_pipe command_close_bidi_pipe/) {
- for my $package ( qw(Git::SVN::Migration),
- __PACKAGE__) {
- *{"${package}::$_"} = \&{"Git::$_"};
- }
- }
Memoize::memoize 'Git::config';
Memoize::memoize 'Git::config_bool';
}
@@ -2079,7 +2080,14 @@ use warnings;
use Carp qw/croak/;
use File::Path qw/mkpath/;
use File::Basename qw/dirname basename/;
-use vars qw/$_minimize/;
+
+our $_minimize;
+use Git qw(
+ command
+ command_noisy
+ command_output_pipe
+ command_close_pipe
+);
sub migrate_from_v0 {
my $git_dir = $ENV{GIT_DIR};
@@ -2188,6 +2196,7 @@ sub migrate_from_v2 {
read_old_urls(\%l_map, '', "$ENV{GIT_DIR}/svn");
my $migrated = 0;
+ require Git::SVN;
foreach my $ref_id (sort keys %l_map) {
eval { Git::SVN->init($l_map{$ref_id}, '', undef, $ref_id) };
if ($@) {
@@ -2199,6 +2208,9 @@ sub migrate_from_v2 {
}
sub minimize_connections {
+ require Git::SVN;
+ require Git::SVN::Ra;
+
my $r = Git::SVN::read_all_remotes();
my $new_urls = {};
my $root_repos = {};