зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
b74fda1c9b
Коммит
b0e75250c8
36
git-svn.perl
36
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 = {};
|
||||
|
|
Загрузка…
Ссылка в новой задаче