Index: fetch.py
|
diff --git a/fetch.py b/fetch.py
|
index 04be95fa48ea0d095692a321c0e6b14ec5fedb57..067d4c61ab0a8bec41af0fb3d15b47a3e248700f 100755
|
--- a/fetch.py
|
+++ b/fetch.py
|
@@ -63,7 +63,7 @@ class Checkout(object):
|
print 'Running: %s' % (' '.join(pipes.quote(x) for x in cmd))
|
if self.options.dry_run:
|
return 0
|
- return subprocess.check_call(cmd, **kwargs)
|
+ return subprocess.check_output(cmd, **kwargs)
|
|
|
class GclientCheckout(Checkout):
|
@@ -75,6 +75,15 @@ class GclientCheckout(Checkout):
|
cmd_prefix = ('gclient',)
|
return self.run(cmd_prefix + cmd, **kwargs)
|
|
+ def exists(self):
|
+ try:
|
+ gclient_root = self.run_gclient('root').strip()
|
+ return (os.path.exists(os.path.join(gclient_root, '.gclient')) or
|
+ os.path.exists(os.path.join(os.getcwd(), self.root)))
|
+ except subprocess.CalledProcessError:
|
+ pass
|
+ return os.path.exists(os.path.join(os.getcwd(), self.root))
|
+
|
|
class GitCheckout(Checkout):
|
|
@@ -120,9 +129,6 @@ class GclientGitCheckout(GclientCheckout, GitCheckout):
|
for key in extra_keys if key in self.spec)
|
return gclient_spec
|
|
- def exists(self):
|
- return os.path.exists(os.path.join(os.getcwd(), self.root))
|
-
|
def init(self):
|
# Configure and do the gclient checkout.
|
self.run_gclient('config', '--spec', self._format_spec())
|
@@ -315,8 +321,9 @@ def run(options, spec, root):
|
except KeyError:
|
return 1
|
if checkout.exists():
|
- print 'You appear to already have a checkout. "fetch" is used only'
|
- print 'to get new checkouts. Use "gclient sync" to update the checkout.'
|
+ print 'Your current directory appears to already contain, or be part of, '
|
+ print 'a checkout. "fetch" is used only to get new checkouts. Use '
|
+ print '"gclient sync" to update existing checkouts.'
|
print
|
print 'Fetch also does not yet deal with partial checkouts, so if fetch'
|
print 'failed, delete the checkout and start over (crbug.com/230691).'
|
|