From: Ramkumar Ramachandra Date: Sat, 10 Jan 2015 14:55:11 +0000 (-0500) Subject: git-svn: make it play nicely with submodules X-Git-Tag: v2.3.0-rc1~4 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a94655dcfedc6b266ba32a3d32b0d52a1ce6a928?hp=--cc git-svn: make it play nicely with submodules It's a simple matter of opening the directory specified in the gitfile. [ew: tweaked check to avoid open() on directories] Signed-off-by: Ramkumar Ramachandra Signed-off-by: Eric Wong --- a94655dcfedc6b266ba32a3d32b0d52a1ce6a928 diff --git a/git-svn.perl b/git-svn.perl index 60f8814cc5..32d109ebdf 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -337,6 +337,12 @@ sub term_init { # 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 (-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: (.+)$/; + } } else { my ($git_dir, $cdup); git_cmd_try {