diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-11-15 16:37:53 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-11-15 16:37:53 -0800 |
commit | 04b35775353e2ccc7064dc470b1a8e3f0c45009b (patch) | |
tree | 88ca52e4c81731f713ca764da23a1b4091a5b495 | |
parent | a25a2cd9eba530108a89a07cc8113d976bbdc4bd (diff) | |
parent | f6fdbb6804eac72eb0ccff191162a5911bf2b014 (diff) | |
download | git-04b35775353e2ccc7064dc470b1a8e3f0c45009b.tar.gz |
Merge branch 'jk/maint-cvsimport-pathname' into maint
* jk/maint-cvsimport-pathname:
cvsimport: fix relative argument filenames
-rwxr-xr-x | git-cvsimport.perl | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/git-cvsimport.perl b/git-cvsimport.perl index 1ad20ac964..a7d215c8aa 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 $!; |