Commit e4af1ab4 authored by msb@chromium.org's avatar msb@chromium.org

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
parent 74f559a7
......@@ -187,6 +187,14 @@ class GitWrapper(SCMWrapper, scm.GIT):
file_list.extend([os.path.join(self.checkout_path, f) for f in files])
return
if not os.path.exists(os.path.join(self.checkout_path, '.git')):
raise gclient_utils.Error('\n____ %s%s\n'
'\tPath is not a git repo. No .git dir.\n'
'\tTo resolve:\n'
'\t\trm -rf %s\n'
'\tAnd run gclient sync again\n'
% (self.relpath, rev_str, self.relpath))
new_base = 'origin'
if revision:
new_base = revision
......
......@@ -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 @@ from :3
'\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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment