git-svn now reads settings even if called in subdirectory
Previously, git-svn first read the .git/config file for settings as if current working directory was the repository top-directory, and after that made sure to cd into top-directory. The result was a silent failur to read configuration settings. This patch changes the order these two things are done. Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se> Acked-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:

committed by
Eric Wong

parent
65c6a4696a
commit
f4dd334bff
35
git-svn.perl
35
git-svn.perl
@ -193,23 +193,6 @@ for (my $i = 0; $i < @ARGV; $i++) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
|
|
||||||
|
|
||||||
read_repo_config(\%opts);
|
|
||||||
Getopt::Long::Configure('pass_through') if ($cmd && $cmd eq 'log');
|
|
||||||
my $rv = GetOptions(%opts, 'help|H|h' => \$_help, 'version|V' => \$_version,
|
|
||||||
'minimize-connections' => \$Git::SVN::Migration::_minimize,
|
|
||||||
'id|i=s' => \$Git::SVN::default_ref_id,
|
|
||||||
'svn-remote|remote|R=s' => sub {
|
|
||||||
$Git::SVN::no_reuse_existing = 1;
|
|
||||||
$Git::SVN::default_repo_id = $_[1] });
|
|
||||||
exit 1 if (!$rv && $cmd && $cmd ne 'log');
|
|
||||||
|
|
||||||
usage(0) if $_help;
|
|
||||||
version() if $_version;
|
|
||||||
usage(1) unless defined $cmd;
|
|
||||||
load_authors() if $_authors;
|
|
||||||
|
|
||||||
# make sure we're always running
|
# make sure we're always running
|
||||||
unless ($cmd =~ /(?:clone|init|multi-init)$/) {
|
unless ($cmd =~ /(?:clone|init|multi-init)$/) {
|
||||||
unless (-d $ENV{GIT_DIR}) {
|
unless (-d $ENV{GIT_DIR}) {
|
||||||
@ -231,6 +214,24 @@ unless ($cmd =~ /(?:clone|init|multi-init)$/) {
|
|||||||
$ENV{GIT_DIR} = $git_dir;
|
$ENV{GIT_DIR} = $git_dir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
|
||||||
|
|
||||||
|
read_repo_config(\%opts);
|
||||||
|
Getopt::Long::Configure('pass_through') if ($cmd && $cmd eq 'log');
|
||||||
|
my $rv = GetOptions(%opts, 'help|H|h' => \$_help, 'version|V' => \$_version,
|
||||||
|
'minimize-connections' => \$Git::SVN::Migration::_minimize,
|
||||||
|
'id|i=s' => \$Git::SVN::default_ref_id,
|
||||||
|
'svn-remote|remote|R=s' => sub {
|
||||||
|
$Git::SVN::no_reuse_existing = 1;
|
||||||
|
$Git::SVN::default_repo_id = $_[1] });
|
||||||
|
exit 1 if (!$rv && $cmd && $cmd ne 'log');
|
||||||
|
|
||||||
|
usage(0) if $_help;
|
||||||
|
version() if $_version;
|
||||||
|
usage(1) unless defined $cmd;
|
||||||
|
load_authors() if $_authors;
|
||||||
|
|
||||||
unless ($cmd =~ /^(?:clone|init|multi-init|commit-diff)$/) {
|
unless ($cmd =~ /^(?:clone|init|multi-init|commit-diff)$/) {
|
||||||
Git::SVN::Migration::migration_check();
|
Git::SVN::Migration::migration_check();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user