summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-11-16 00:37:53 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-11-16 00:37:53 (GMT)
commit04b35775353e2ccc7064dc470b1a8e3f0c45009b (patch)
tree88ca52e4c81731f713ca764da23a1b4091a5b495
parenta25a2cd9eba530108a89a07cc8113d976bbdc4bd (diff)
parentf6fdbb6804eac72eb0ccff191162a5911bf2b014 (diff)
downloadgit-04b35775353e2ccc7064dc470b1a8e3f0c45009b.zip
git-04b35775353e2ccc7064dc470b1a8e3f0c45009b.tar.gz
git-04b35775353e2ccc7064dc470b1a8e3f0c45009b.tar.bz2
Merge branch 'jk/maint-cvsimport-pathname' into maint
* jk/maint-cvsimport-pathname: cvsimport: fix relative argument filenames
-rwxr-xr-xgit-cvsimport.perl17
1 files changed, 14 insertions, 3 deletions
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 1ad20ac..a7d215c 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -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) {
-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) {
$? == 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 $!;