Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(617)

Unified Diff: fetch.py

Issue 1169403002: Try harder to detect an existing checkout before 'fetch'ing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: *$?%$! Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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).'
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698