diff --git a/gclient_scm.py b/gclient_scm.py index 89647ac0e..b5a09a224 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -352,7 +352,8 @@ class GitWrapper(SCMWrapper): (os.path.isdir(self.checkout_path) and not os.path.exists(os.path.join(self.checkout_path, '.git')))): if (os.path.isdir(self.checkout_path) and - not os.path.exists(os.path.join(self.checkout_path, '.git'))): + not os.path.exists(os.path.join(self.checkout_path, '.git')) and + os.listdir(self.checkout_path)): # This is a little hack to work around checkouts which are created # using "gclient config --name ." if not self.relpath == '.': diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py index c49b5247e..dbd94f0a7 100755 --- a/tests/gclient_scm_test.py +++ b/tests/gclient_scm_test.py @@ -1300,6 +1300,8 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): gclient_scm.os.path.isdir(self.base_path).AndReturn(True) gclient_scm.os.path.exists(os.path.join(self.base_path, '.git') ).AndReturn(False) + self.mox.StubOutWithMock(gclient_scm.os, 'listdir', True) + gclient_scm.os.listdir(self.base_path).AndReturn([]) self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Clone', True) # pylint: disable=E1120 @@ -1332,6 +1334,8 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): gclient_scm.os.path.isdir(self.base_path).AndReturn(True) gclient_scm.os.path.exists(os.path.join(self.base_path, '.git') ).AndReturn(False) + self.mox.StubOutWithMock(gclient_scm.os, 'listdir', True) + gclient_scm.os.listdir(self.base_path).AndReturn([]) self.mox.StubOutWithMock(gclient_scm.GitWrapper, '_Clone', True) # pylint: disable=E1120 gclient_scm.GitWrapper._Clone('refs/remotes/origin/master', self.url,