Re: [PATCH] git-svn: make it play nicely with submodules
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jan 10, 2015, 22:11 UTC
- Message-ID
- <20150110221121.GA30202@dcvr.yhbt.net>
- In-Reply-To
- <1420901711-81679-1-git-send-email-artagnon@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> wrote:
Show 9 quoted lines
> +++ b/git-svn.perl
> @@ -337,6 +337,10 @@ for (my $i = 0; $i < @ARGV; $i++) {
> # make sure we're always running at the top-level working directory
> if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
> $ENV{GIT_DIR} ||= ".git";
> + # catch the submodule case
> + if (open(my $fh, '<', $ENV{GIT_DIR})) {
> + $ENV{GIT_DIR} = $1 if <$fh> =~ /^gitdir: (.+)$/;
> + }How portable is open on a directory? Perhaps it'd be better to check if it's a file, first:
if (-f $ENV{GIT_DIR}) {
open(my $fh, '<', $ENV{GIT_DIR}) or
die "failed to open $ENV{GIT_DIR}: $!\n";
$ENV{GIT_DIR} = $1 if <$fh> =~ /^gitdir: (.+)$/;
}