Re: [PATCH v3 0/2] Make git-svn work with gitdir links
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jan 23, 2013, 02:32 UTC
- Message-ID
- <20130123023235.GA24135@dcvr.yhbt.net>
- In-Reply-To
- <1358731322-44600-1-git-send-email-barry.wardell@gmail.com>
Barry Wardell <barry.wardell@gmail.com> wrote:
Show 9 quoted lines
> These patches fix a bug which prevented git-svn from working with repositories > which use gitdir links. > > Changes since v2: > - Rebased onto latest master. > - Added test case which verifies that the problem has been fixed. > - Fixed problems with git svn (init|clone|multi-init). > - All git-svn test cases now pass (except two in t9101 which also failed > before these patches).
t9101 did not fail for me before your patches. However I have a patch on top of your 2/2 which should fix things.
`git rev-parse --show-cdup` outputs nothing if GIT_DIR is set, so I unset GIT_DIR temporarily.
I'm not sure why --show-cdup behaves like this, though..
Does squashing this on top of your changes fix all your failures? I plan on squashing both your changes together with the below:
diff --git a/git-svn.perl b/git-svn.perl index c232798..e5bd292 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -332,11 +332,13 @@ if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) { $ENV{GIT_DIR} = command_oneline([qw/rev-parse --git-dir/]); } "Unable to find .git directory\n"; my $cdup = undef; + my $git_dir = delete $ENV{GIT_DIR}; git_cmd_try { $cdup = command_oneline(qw/rev-parse --show-cdup/); chomp $cdup if ($cdup); $cdup = "." unless ($cdup && length $cdup); - } "Already at toplevel, but $ENV{GIT_DIR} not found\n"; + } "Already at toplevel, but $git_dir not found\n"; + $ENV{GIT_DIR} = $git_dir; chdir $cdup or die "Unable to chdir up to '$cdup'\n"; $_repository = Git->repository(Repository => $ENV{GIT_DIR}); }