diff options
author | Michael G. Schwern <schwern@pobox.com> | 2012-07-26 17:26:02 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-07-27 22:36:12 +0000 |
commit | b0e75250c8c1fc40ba9d42c31ae99146f1cdeb71 (patch) | |
tree | 4199e99ba7357143e8045c711d4fcdcfaf6150fe /git-svn.perl | |
parent | b74fda1c9b332b1216cc4d02ec256d6e350d5524 (diff) | |
download | git-b0e75250c8c1fc40ba9d42c31ae99146f1cdeb71.tar.gz git-b0e75250c8c1fc40ba9d42c31ae99146f1cdeb71.tar.xz |
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-x | git-svn.perl | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/git-svn.perl b/git-svn.perl index 15e5f3c0f..026687812 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 = {}; |