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 <artagnon@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:

committed by
Eric Wong

parent
9a2bb059e7
commit
a94655dcfe
@ -337,6 +337,12 @@ for (my $i = 0; $i < @ARGV; $i++) {
|
|||||||
# make sure we're always running at the top-level working directory
|
# make sure we're always running at the top-level working directory
|
||||||
if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
|
if ($cmd && $cmd =~ /(?:clone|init|multi-init)$/) {
|
||||||
$ENV{GIT_DIR} ||= ".git";
|
$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 {
|
} else {
|
||||||
my ($git_dir, $cdup);
|
my ($git_dir, $cdup);
|
||||||
git_cmd_try {
|
git_cmd_try {
|
||||||
|
Reference in New Issue
Block a user