git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 0/2] Make git-svn work with gitdir links

From
Barry Wardell <barry.wardell@gmail.com>
Date
Jan 23, 2013, 12:08 UTC
Message-ID
<CAHrK+Z8kc_O1CE4Le=XpiXWJ2Fadh906nbfgf0rqmvL0e6=P6A@mail.gmail.com>
In-Reply-To
<20130123023235.GA24135@dcvr.yhbt.net>
On Wed, Jan 23, 2013 at 2:32 AM, Eric Wong <normalperson@yhbt.net> wrote:
Show 42 quoted lines
>
> Barry Wardell <barry.wardell@gmail.com> wrote:
> > 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});
>  }

Yes, I can confirm that applying this patch on top of mine makes all git-svn tests pass again. I have also re-run the tests without my patch applied and found that they do all indeed pass, so I apologize for my previous incorrect comment.

Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 15 in “git-svn: Simplify calculation of GIT_DIR”
  1. git-svn: Simplify calculation of GIT_DIRBarry Wardell, Mar 3, 2012
  2. Eric WongMar 8, 2012
  3. 0/2 Make git-svn work with gitdir linksBarry Wardell, Jan 21, 2013
  4. 1/2 git-svn: Add test for git-svn repositories with a gitdir linkBarry Wardell, Jan 21, 2013
  5. 2/2 git-svn: Simplify calculation of GIT_DIRBarry Wardell, Jan 21, 2013
  6. Junio C HamanoJan 21, 2013
  7. Joachim SchmitzJan 21, 2013
  8. Philip OakleyJan 21, 2013
  9. Junio C HamanoJan 21, 2013
  10. Eric WongJan 23, 2013
  11. Junio C HamanoJan 23, 2013
  12. Barry WardellJan 23, 2013
  13. Junio C HamanoJan 24, 2013
  14. Eric WongJan 24, 2013
  15. Eric WongJan 24, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.