summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ab5a423)
raw | patch | inline | side by side (parent: ab5a423)
author | Johan Herland <johan@herland.net> | |
Mon, 11 Feb 2008 23:43:41 +0000 (00:43 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 13 Feb 2008 03:57:07 +0000 (19:57 -0800) |
When using the '-w $cvsdir' option to cvsexportcommit, it will chdir into
$cvsdir before executing several other git commands. If $GIT_DIR is set to
a relative path (e.g. '.'), the git commands executed by cvsexportcommit
will naturally fail.
Therefore, ensure that $GIT_DIR is absolute before the chdir to $cvsdir.
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
$cvsdir before executing several other git commands. If $GIT_DIR is set to
a relative path (e.g. '.'), the git commands executed by cvsexportcommit
will naturally fail.
Therefore, ensure that $GIT_DIR is absolute before the chdir to $cvsdir.
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-cvsexportcommit.perl | patch | blob | history | |
t/t9200-git-cvsexportcommit.sh | patch | blob | history |
index d2e50c34292bc0ccb6e914ed595da9fd8a7e141d..2a8ad1e9f4cbc2c21b83fd72fae1e0d2e582fbdc 100755 (executable)
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
use File::Temp qw(tempdir);
use Data::Dumper;
use File::Basename qw(basename dirname);
+use File::Spec;
our ($opt_h, $opt_P, $opt_p, $opt_v, $opt_c, $opt_f, $opt_a, $opt_m, $opt_d, $opt_u, $opt_w);
die "Need at least one commit identifier!" unless @ARGV;
if ($opt_w) {
+ # Remember where GIT_DIR is before changing to CVS checkout
unless ($ENV{GIT_DIR}) {
- # Remember where our GIT_DIR is before changing to CVS checkout
+ # No GIT_DIR set. Figure it out for ourselves
my $gd =`git-rev-parse --git-dir`;
chomp($gd);
- if ($gd eq '.git') {
- my $wd = `pwd`;
- chomp($wd);
- $gd = $wd."/.git" ;
- }
$ENV{GIT_DIR} = $gd;
}
+ # Make sure GIT_DIR is absolute
+ $ENV{GIT_DIR} = File::Spec->rel2abs($ENV{GIT_DIR});
if (! -d $opt_w."/CVS" ) {
die "$opt_w is not a CVS checkout";
index 7e25a392a1ab4a78a0c76f72a89f0326599906a8..49d57a81ec1cc55f83fb63436631dfdc7d647e0b 100755 (executable)
;;
esac
-test_expect_failure '-w option should work with relative GIT_DIR' '
+test_expect_success '-w option should work with relative GIT_DIR' '
mkdir W &&
echo foobar >W/file1.txt &&
echo bazzle >W/file2.txt &&