Re: [PATCH] git-svn: make it play nicely with submodules
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: (.+)$/;
}