diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-10-26 04:40:21 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-10-26 04:40:21 +0300 |
commit | 9382bb31ada4a4b2277bd297cb018df27168e58f (patch) | |
tree | 7be926622e7ad0cfff74f90ede135a8a81e26720 | |
parent | 18432dfd889061cae4cbfe9b2407ba5851eea60e (diff) | |
parent | f6fdbb6804eac72eb0ccff191162a5911bf2b014 (diff) |
Merge branch 'jk/maint-cvsimport-pathname'
* 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 $!; |