Browse Source

cvsimport: fix relative argument filenames

One of the first things that cvsimport does is chdir to the
newly created git repo. This means that any filenames given
to us on the command line will be looked up relative to the
git repo directory. This is probably not what the user
expects, so let's remember and prepend the original
directory for relative filenames.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 16 years ago committed by Junio C Hamano
parent
commit
f6fdbb6804
  1. 17
      git-cvsimport.perl

17
git-cvsimport.perl

@ -579,10 +579,21 @@ sub get_headref ($) { @@ -579,10 +579,21 @@ sub get_headref ($) {
return $r;
}

my $user_filename_prepend = '';
sub munge_user_filename {
my $name = shift;
return File::Spec->file_name_is_absolute($name) ?
$name :
$user_filename_prepend . $name;
}

-d $git_tree
or mkdir($git_tree,0777)
or die "Could not create $git_tree: $!";
chdir($git_tree);
if ($git_tree ne '.') {
$user_filename_prepend = getwd() . '/';
chdir($git_tree);
}

my $last_branch = "";
my $orig_branch = "";
@ -644,7 +655,7 @@ unless (-d $git_dir) { @@ -644,7 +655,7 @@ unless (-d $git_dir) {
-f "$git_dir/cvs-authors" and
read_author_info("$git_dir/cvs-authors");
if ($opt_A) {
read_author_info($opt_A);
read_author_info(munge_user_filename($opt_A));
write_author_info("$git_dir/cvs-authors");
}

@ -679,7 +690,7 @@ unless ($opt_P) { @@ -679,7 +690,7 @@ unless ($opt_P) {
$? == 0 or die "git-cvsimport: fatal: cvsps reported error\n";
close $cvspsfh;
} else {
$cvspsfile = $opt_P;
$cvspsfile = munge_user_filename($opt_P);
}

open(CVS, "<$cvspsfile") or die $!;

Loading…
Cancel
Save