Skip to content

Commit

Permalink
git-svn: fix clone when a target directory has been specified
Browse files Browse the repository at this point in the history
Several bugs caused this to fail:

* GIT_DIR was set incorrectly after entering the target directory

* Avoid double chdir-ing when clone is called with an explicit path

* create target subdirectory *before* running git-init when using
  the multi-init path

Signed-off-by: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Eric Wong committed Feb 23, 2007
1 parent a0d7fe3 commit f30603f
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ sub init_subdir {
my $repo_path = shift or return;
mkpath([$repo_path]) unless -d $repo_path;
chdir $repo_path or die "Couldn't chdir to $repo_path: $!\n";
$ENV{GIT_DIR} = $repo_path . "/.git";
$ENV{GIT_DIR} = '.git';
}

sub cmd_clone {
Expand All @@ -286,12 +286,8 @@ sub cmd_clone {
$url !~ m#^[a-z\+]+://#) {
$path = $url;
}
warn "--path: $path\n" if defined $path;
$path = basename($url) if !defined $path || !length $path;
warn "++path: $path\n" if defined $path;
mkpath([$path]);
chdir $path or die "Couldn't chdir to $path\n";
cmd_init(@_);
cmd_init($url, $path);
Git::SVN::fetch_all($Git::SVN::default_repo_id);
}

Expand Down Expand Up @@ -459,12 +455,12 @@ sub cmd_multi_init {
unless (defined $_trunk || defined $_branches || defined $_tags) {
usage(1);
}
do_git_init_db();
$_prefix = '' unless defined $_prefix;
if (defined $url) {
$url =~ s#/+$##;
init_subdir(@_);
}
do_git_init_db();
if (defined $_trunk) {
my $trunk_ref = $_prefix . 'trunk';
# try both old-style and new-style lookups:
Expand Down

0 comments on commit f30603f

Please sign in to comment.