gclient: Add better error reporting when path is not a git repo.

Review URL: http://codereview.chromium.org/505007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@36172 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index 66c1f5e..61146b4 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -16,6 +16,7 @@
 
 """Unit tests for gclient_scm.py."""
 
+import os
 import shutil
 # Import it before super_mox to keep a valid reference.
 from subprocess import Popen, PIPE, STDOUT
@@ -541,6 +542,22 @@
         '\tSee man git-rebase for details.\n'
     self.assertRaisesError(exception, scm.update, options, (), [])
 
+  def testUpdateNotGit(self):
+    if not self.enabled:
+      return
+    options = self.Options()
+    scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
+                                relpath=self.relpath)
+    git_path = gclient_scm.os.path.join(self.base_path, '.git')
+    os.rename(git_path, git_path + 'foo')
+    exception = \
+        '\n____ .\n' \
+        '\tPath is not a git repo. No .git dir.\n' \
+        '\tTo resolve:\n' \
+        '\t\trm -rf .\n' \
+        '\tAnd run gclient sync again\n'
+    self.assertRaisesError(exception, scm.update, options, (), [])
+
   def testRevinfo(self):
     if not self.enabled:
       return