| 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).'
|
|
|