|
|
Created:
6 years, 10 months ago by borenet Modified:
6 years, 9 months ago CC:
chromium-reviews, Dirk Pranke, cmp-cc_chromium.org, M-A Ruel, iannucci+depot_tools_chromium.org, ilevy-cc_chromium.org Visibility:
Public. |
DescriptionRe-re-land gclient deletion of mismatching checkouts again
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=253616
Patch Set 1 : Re-land #Patch Set 2 : Move the deletion logic to gclient_scm #Patch Set 3 : Some fixes #Patch Set 4 : Move deletion logic into gclient_scm #Patch Set 5 : Fix typo #
Total comments: 9
Patch Set 6 : Address comments #Patch Set 7 : Put the deletion behind a guard to run on a few bots #Patch Set 8 : Guard, pt2 #
Total comments: 15
Patch Set 9 : isdir('.git') -> exists('.git') #Patch Set 10 : Address comments #
Total comments: 4
Patch Set 11 : Switch the remote URL if gclient-auto-fix-url is unset or "true" #Patch Set 12 : Another attempt of gclient: delete mismatching checkouts #
Messages
Total messages: 23 (0 generated)
Trying this again. Patch set 1 is the patch as it landed last, with buildslave hostname fixes included. The subsequent patch sets move the deletion logic into gclient_scm. Note that the deletion is *not* guarded in this patch. I can put in a guard, but it seemed like it did more harm than good with the last attempt. https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py File gclient_scm.py (left): https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#oldcode1153 gclient_scm.py:1153: return I removed this check altogether. Seems like we'd just want to delete the directory and re-sync in this case. https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1 gclient_scm.py:1: # Copyright (c) 2012 The Chromium Authors. All rights reserved. I moved around some logic. I think it shouldn't have any effect in most cases, but it makes the deletion easier.
On 2014/02/18 21:56:58, borenet wrote: > Trying this again. Patch set 1 is the patch as it landed last, with buildslave > hostname fixes included. The subsequent patch sets move the deletion logic into > gclient_scm. Note that the deletion is *not* guarded in this patch. I can put > in a guard, but it seemed like it did more harm than good with the last attempt. > > https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py > File gclient_scm.py (left): > > https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#oldcode1153 > gclient_scm.py:1153: return > I removed this check altogether. Seems like we'd just want to delete the > directory and re-sync in this case. > > https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py > File gclient_scm.py (right): > > https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1 > gclient_scm.py:1: # Copyright (c) 2012 The Chromium Authors. All rights > reserved. > I moved around some logic. I think it shouldn't have any effect in most cases, > but it makes the deletion easier. I will probably upload a different CL tomorrow which adds a bunch of tests to verify that the upstream switching behaves the same.
https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode391 gclient_scm.py:391: not os.path.exists(os.path.join(self.checkout_path, '.git')))): I think this logic is more complex than it needs to be at this point, right? https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1199 gclient_scm.py:1199: return # TODO(borenet): Get the svn revision number? This is weird... I don't understand why this clause is necessary. IIUC, this would happen when you: * have DEPS make the repo git * manually set up git-svn * have DEPS make the repo svn Is this expected to happen? The only case I can think of is blink in the chromium tree... https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1208 gclient_scm.py:1208: if from_info and from_info['URL'] != base_url: if not needs_delete and .... ?
https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode391 gclient_scm.py:391: not os.path.exists(os.path.join(self.checkout_path, '.git')))): On 2014/02/21 02:17:00, iannucci wrote: > I think this logic is more complex than it needs to be at this point, right? Changed to just "os.path.exists". This is more strict, since it will no longer check out into a directory already containing a checkout, although the removal logic above should prevent there being a checkout there anyway. https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1199 gclient_scm.py:1199: return # TODO(borenet): Get the svn revision number? On 2014/02/21 02:17:00, iannucci wrote: > This is weird... I don't understand why this clause is necessary. IIUC, this > would happen when you: > * have DEPS make the repo git > * manually set up git-svn > * have DEPS make the repo svn > > Is this expected to happen? The only case I can think of is blink in the > chromium tree... One of my previous submissions broke a project whose workflow was something like: git svn clone svn://repo gclient config svn://repo gclient sync They were depending on the functionality in SVNWrapper.update() which noticed the .git directory and returned early. I added this slightly more sophisticated version because we don't want to delete the checkout if it's actually the right repo. https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1208 gclient_scm.py:1208: if from_info and from_info['URL'] != base_url: On 2014/02/21 02:17:00, iannucci wrote: > if not needs_delete and .... > > ? Not sure it's needed but added anyway.
lgtm.... Pawel (cc'd) is trooper today https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/70001/gclient_scm.py#newcode1199 gclient_scm.py:1199: return # TODO(borenet): Get the svn revision number? On 2014/02/21 13:38:17, borenet wrote: > On 2014/02/21 02:17:00, iannucci wrote: > > This is weird... I don't understand why this clause is necessary. IIUC, this > > would happen when you: > > * have DEPS make the repo git > > * manually set up git-svn > > * have DEPS make the repo svn > > > > Is this expected to happen? The only case I can think of is blink in the > > chromium tree... > > One of my previous submissions broke a project whose workflow was something > like: > > git svn clone svn://repo > gclient config svn://repo > gclient sync :( That is so sad in so many ways :( > > They were depending on the functionality in SVNWrapper.update() which noticed > the .git directory and returned early. I added this slightly more sophisticated > version because we don't want to delete the checkout if it's actually the right > repo.
As discussed, put the deletion logic behind a guard. Added an exception for deleting unversioned SVN checkouts to preserve the old behavior with the guard in place.
lgtm Looks as good to me as any of the other attempts :/
https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode366 gclient_scm.py:366: if subprocess2.capture( self._Capture ? https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode368 gclient_scm.py:368: cwd=self.checkout_path).strip() != 'False': Check for more standard boolean strings, e.g., '0', '[Nn]o', '[Ff]alse' https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode377 gclient_scm.py:377: needs_delete = True Let me make sure I understand this... If the url has changed, and I have 'remote.origin.gclient-auto-fix-url = False' in my .git/config, then my checkout gets deleted and re-cloned from the new url? That seems a bit weird. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode1190 gclient_scm.py:1190: if scm.GIT.IsGitSvn(self.checkout_path): I read the previous comments on this, I understand it, and I am throwing up in my mouth a little bit. No offense, not your fault; I just thought you should know. https://codereview.chromium.org/164053003/diff/240001/scm.py File scm.py (right): https://codereview.chromium.org/164053003/diff/240001/scm.py#newcode172 scm.py:172: if not os.path.isdir(os.path.join(checkout_root, '.git')): In some cases, .git will be a file, not a directory.
On 2014/02/25 23:32:55, szager1 wrote: > https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py > File gclient_scm.py (right): > > https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode366 > gclient_scm.py:366: if subprocess2.capture( > self._Capture ? > > https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode368 > gclient_scm.py:368: cwd=self.checkout_path).strip() != 'False': > Check for more standard boolean strings, e.g., '0', '[Nn]o', '[Ff]alse' > > https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode377 > gclient_scm.py:377: needs_delete = True > Let me make sure I understand this... > > If the url has changed, and I have 'remote.origin.gclient-auto-fix-url = False' > in my .git/config, then my checkout gets deleted and re-cloned from the new url? > That seems a bit weird. > > https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode1190 > gclient_scm.py:1190: if scm.GIT.IsGitSvn(self.checkout_path): > I read the previous comments on this, I understand it, and I am throwing up in > my mouth a little bit. No offense, not your fault; I just thought you should > know. > > https://codereview.chromium.org/164053003/diff/240001/scm.py > File scm.py (right): > > https://codereview.chromium.org/164053003/diff/240001/scm.py#newcode172 > scm.py:172: if not os.path.isdir(os.path.join(checkout_root, '.git')): > In some cases, .git will be a file, not a directory. I don't think we have any tools which generate those style git checkouts, do we? (but yes, it can be a application-level 'symlink' instead of a dir)
https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode366 gclient_scm.py:366: if subprocess2.capture( On 2014/02/25 23:32:56, szager1 wrote: > self._Capture ? This block is just moved and slightly modified from lines 371-391. I'd prefer to modify it as little as possible. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode368 gclient_scm.py:368: cwd=self.checkout_path).strip() != 'False': On 2014/02/25 23:32:56, szager1 wrote: > Check for more standard boolean strings, e.g., '0', '[Nn]o', '[Ff]alse' Again, this is just moved from below. I can change it as you suggest if you feel strongly, but would rather leave it alone. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode377 gclient_scm.py:377: needs_delete = True On 2014/02/25 23:32:56, szager1 wrote: > Let me make sure I understand this... > > If the url has changed, and I have 'remote.origin.gclient-auto-fix-url = False' > in my .git/config, then my checkout gets deleted and re-cloned from the new url? > That seems a bit weird. What's the expected behavior in that case? It seems to me that, if what you have locally doesn't match what you want (as specified in DEPS), and it can't be auto-fixed, the right behavior (with --force anyway) is to delete and re-clone. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode1190 gclient_scm.py:1190: if scm.GIT.IsGitSvn(self.checkout_path): On 2014/02/25 23:32:56, szager1 wrote: > I read the previous comments on this, I understand it, and I am throwing up in > my mouth a little bit. No offense, not your fault; I just thought you should > know. Yep. https://codereview.chromium.org/164053003/diff/240001/scm.py File scm.py (right): https://codereview.chromium.org/164053003/diff/240001/scm.py#newcode172 scm.py:172: if not os.path.isdir(os.path.join(checkout_root, '.git')): On 2014/02/25 23:32:56, szager1 wrote: > In some cases, .git will be a file, not a directory. Changed to exists()
https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode366 gclient_scm.py:366: if subprocess2.capture( On 2014/02/26 14:26:35, borenet wrote: > On 2014/02/25 23:32:56, szager1 wrote: > > self._Capture ? > > This block is just moved and slightly modified from lines 371-391. I'd prefer > to modify it as little as possible. Actually, I think this is the ideal time to improve the code health in this way. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode368 gclient_scm.py:368: cwd=self.checkout_path).strip() != 'False': On 2014/02/26 14:26:35, borenet wrote: > On 2014/02/25 23:32:56, szager1 wrote: > > Check for more standard boolean strings, e.g., '0', '[Nn]o', '[Ff]alse' > > Again, this is just moved from below. I can change it as you suggest if you > feel strongly, but would rather leave it alone. Same comment, it should be easy to make the behavior more intuitive: if self._Capture(...) not in ['0', 'false', 'False', 'no', 'No']: https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode377 gclient_scm.py:377: needs_delete = True On 2014/02/26 14:26:35, borenet wrote: > On 2014/02/25 23:32:56, szager1 wrote: > > Let me make sure I understand this... > > > > If the url has changed, and I have 'remote.origin.gclient-auto-fix-url = > False' > > in my .git/config, then my checkout gets deleted and re-cloned from the new > url? > > That seems a bit weird. > > What's the expected behavior in that case? It seems to me that, if what you > have locally doesn't match what you want (as specified in DEPS), and it can't be > auto-fixed, the right behavior (with --force anyway) is to delete and re-clone. I don't know what the expected behavior is; but setting remote.origin.gclient-auto-fix-url=False *sounds* like the intended behavior is "hands off my checkout, gclient!" I guess I'd like to hear from maruel, but my gut tells me we shouldn't blow away the checkout when that config is set.
Uploaded patch set 10. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode366 gclient_scm.py:366: if subprocess2.capture( On 2014/02/26 20:33:15, szager1 wrote: > On 2014/02/26 14:26:35, borenet wrote: > > On 2014/02/25 23:32:56, szager1 wrote: > > > self._Capture ? > > > > This block is just moved and slightly modified from lines 371-391. I'd prefer > > to modify it as little as possible. > > Actually, I think this is the ideal time to improve the code health in this way. Ok. I was trying to be non-intrusive. https://codereview.chromium.org/164053003/diff/240001/gclient_scm.py#newcode377 gclient_scm.py:377: needs_delete = True On 2014/02/26 20:33:15, szager1 wrote: > On 2014/02/26 14:26:35, borenet wrote: > > On 2014/02/25 23:32:56, szager1 wrote: > > > Let me make sure I understand this... > > > > > > If the url has changed, and I have 'remote.origin.gclient-auto-fix-url = > > False' > > > in my .git/config, then my checkout gets deleted and re-cloned from the new > > url? > > > That seems a bit weird. > > > > What's the expected behavior in that case? It seems to me that, if what you > > have locally doesn't match what you want (as specified in DEPS), and it can't > be > > auto-fixed, the right behavior (with --force anyway) is to delete and > re-clone. > > I don't know what the expected behavior is; but setting > remote.origin.gclient-auto-fix-url=False *sounds* like the intended behavior is > "hands off my checkout, gclient!" > > I guess I'd like to hear from maruel, but my gut tells me we shouldn't blow away > the checkout when that config is set. Changed this a bit: if gclient-auto-fix-url is not set, an exception will be thrown. In that case, delete the checkout. If no exception is thrown, auto-fix if it's something true-like, or just move on otherwise. That's close to the original behavior.
https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py#newcode365 gclient_scm.py:365: auto_fix = False Shouldn't this be: auto_fix = 'true' ?
https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py#newcode365 gclient_scm.py:365: auto_fix = False On 2014/02/26 21:34:07, szager1 wrote: > Shouldn't this be: > > auto_fix = 'true' > > ? I *think* the behavior we want is to delete the checkout if gclient-auto-fix-url is not set. If it's 'true' or 'false' or any variant thereof, we'll auto-fix or ignore.
https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py#newcode365 gclient_scm.py:365: auto_fix = False On 2014/02/26 21:52:18, borenet wrote: > On 2014/02/26 21:34:07, szager1 wrote: > > Shouldn't this be: > > > > auto_fix = 'true' > > > > ? > > I *think* the behavior we want is to delete the checkout if gclient-auto-fix-url > is not set. If it's 'true' or 'false' or any variant thereof, we'll auto-fix or > ignore. Ah, I see. I'm not trying to torture you with this review, really I'm not :) It should be OK to update the URL without deleting the checkout if remote.origin.gclient-auto-fix-url is unset. Basically, I think the logic should be: If remote.gclient-auto-fix-url is unset or true: if the url can be updated: update url else: delete checkout and re-clone else: pass
https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py File gclient_scm.py (right): https://codereview.chromium.org/164053003/diff/280001/gclient_scm.py#newcode365 gclient_scm.py:365: auto_fix = False On 2014/02/26 22:16:53, szager1 wrote: > On 2014/02/26 21:52:18, borenet wrote: > > On 2014/02/26 21:34:07, szager1 wrote: > > > Shouldn't this be: > > > > > > auto_fix = 'true' > > > > > > ? > > > > I *think* the behavior we want is to delete the checkout if > gclient-auto-fix-url > > is not set. If it's 'true' or 'false' or any variant thereof, we'll auto-fix > or > > ignore. > > Ah, I see. I'm not trying to torture you with this review, really I'm not :) > > It should be OK to update the URL without deleting the checkout if > remote.origin.gclient-auto-fix-url is unset. Basically, I think the logic > should be: > > If remote.gclient-auto-fix-url is unset or true: > if the url can be updated: > update url > else: > delete checkout and re-clone > else: > pass Got it. Changed to switch the checkout rather than deleting if gclient-auto-fix-url is true or not set. I don't think there's a "url can't be updated" case, since we _CheckClean, FetchAndReset, right?
lgtm, thanks! You may fire when ready.
On 2014/02/26 22:53:32, szager1 wrote: > lgtm, thanks! You may fire when ready. Thanks for the review.
The CQ bit was checked by borenet@google.com
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/borenet@google.com/164053003/300001
Message was sent while issue was closed.
Change committed as 253616
Message was sent while issue was closed.
On 2014/02/26 23:09:35, I haz the power (commit-bot) wrote: > Change committed as 253616 This change broke fetching a new checkout: mmueller2 15:48:34 /y/src/chrome$ fetch --nohooks chromium Running: svn ls --non-interactive svn://svn.chromium.org/chrome PRESUBMIT.py branches/ codereview.settings releases/ trunk/ Running: git config --global core.deltaBaseCacheLimit 1G Running: gclient config --spec 'solutions = [{u'"'"'managed'"'"': False, u'"'"'name'"'"': u'"'"'src'"'"', u'"'"'url'"'"': u'"'"'https://chromium.googlesource.com/chromium/src.git'"'"', u'"'"'custom_deps'"'"': {}, u'"'"'deps_file'"'"': u'"'"'.DEPS.git'"'"', u'"'"'safesync_url'"'"': u'"'"''"'"'}]' Running: gclient sync --nohooks Traceback (most recent call last): File "/y/src/depot_tools/gclient.py", line 1926, in <module> sys.exit(Main(sys.argv[1:])) File "/y/src/depot_tools/gclient.py", line 1916, in Main return dispatcher.execute(OptionParser(), argv) File "/y/src/depot_tools/subcommand.py", line 245, in execute return command(parser, args[1:]) File "/y/src/depot_tools/gclient.py", line 1697, in CMDsync ret = client.RunOnDeps('update', args) File "/y/src/depot_tools/gclient.py", line 1239, in RunOnDeps work_queue.flush(revision_overrides, command, args, options=self._options) File "/y/src/depot_tools/gclient_utils.py", line 843, in run self.item.run(*self.args, **self.kwargs) File "/y/src/depot_tools/gclient.py", line 672, in run file_list) File "/y/src/depot_tools/gclient_scm.py", line 142, in RunCommand return getattr(self, command)(options, args, file_list) File "/y/src/depot_tools/gclient_scm.py", line 307, in update self.UpdateSubmoduleConfig() File "/y/src/depot_tools/gclient_scm.py", line 218, in UpdateSubmoduleConfig gclient_utils.CheckCallAndFilter(cmd, **kwargs) File "/y/src/depot_tools/gclient_utils.py", line 453, in CheckCallAndFilter **kwargs) File "/y/src/depot_tools/subprocess2.py", line 237, in __init__ super(Popen, self).__init__(args, **kwargs) File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory: '/y/src/chrome/src' Sending crash report ... args: ['/y/src/depot_tools/gclient.py', 'sync', '--nohooks'] cwd: /y/src/chrome exception: [Errno 2] No such file or directory: '/y/src/chrom host: mmueller2.mtv.corp.google.com stack: File "/y/src/depot_tools/gclient.py", line 1926, user: mattm version: 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3 A stack trace has been sent to the maintainers. Traceback (most recent call last): File "/y/src/depot_tools/fetch.py", line 299, in <module> sys.exit(main()) File "/y/src/depot_tools/fetch.py", line 295, in main return run(options, spec, root) File "/y/src/depot_tools/fetch.py", line 289, in run return checkout.init() File "/y/src/depot_tools/fetch.py", line 152, in init super(GclientGitSvnCheckout, self).init() File "/y/src/depot_tools/fetch.py", line 118, in init self.run_gclient('sync', '--nohooks') File "/y/src/depot_tools/fetch.py", line 75, in run_gclient return self.run(cmd_prefix + cmd, **kwargs) File "/y/src/depot_tools/fetch.py", line 65, in run return subprocess.check_call(cmd, **kwargs) File "/usr/lib/python2.7/subprocess.py", line 511, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '('gclient', 'sync', '--nohooks')' returned non-zero exit status 1 I reverted it in my depot_tools checkout and now am fetching successfully.
Thanks for the heads up, I reverted the change. Stefan On Wed, Feb 26, 2014 at 3:54 PM, <mattm@chromium.org> wrote: > On 2014/02/26 23:09:35, I haz the power (commit-bot) wrote: >> >> Change committed as 253616 > > > This change broke fetching a new checkout: > > mmueller2 15:48:34 /y/src/chrome$ fetch --nohooks chromium > Running: svn ls --non-interactive svn://svn.chromium.org/chrome > PRESUBMIT.py > branches/ > codereview.settings > releases/ > trunk/ > Running: git config --global core.deltaBaseCacheLimit 1G > Running: gclient config --spec 'solutions = [{u'"'"'managed'"'"': False, > u'"'"'name'"'"': u'"'"'src'"'"', u'"'"'url'"'"': > u'"'"'https://chromium.googlesource.com/chromium/src.git'"'"', > u'"'"'custom_deps'"'"': {}, u'"'"'deps_file'"'"': u'"'"'.DEPS.git'"'"', > u'"'"'safesync_url'"'"': u'"'"''"'"'}]' > Running: gclient sync --nohooks > Traceback (most recent call last): > File "/y/src/depot_tools/gclient.py", line 1926, in <module> > sys.exit(Main(sys.argv[1:])) > File "/y/src/depot_tools/gclient.py", line 1916, in Main > return dispatcher.execute(OptionParser(), argv) > File "/y/src/depot_tools/subcommand.py", line 245, in execute > return command(parser, args[1:]) > File "/y/src/depot_tools/gclient.py", line 1697, in CMDsync > ret = client.RunOnDeps('update', args) > File "/y/src/depot_tools/gclient.py", line 1239, in RunOnDeps > work_queue.flush(revision_overrides, command, args, > options=self._options) > File "/y/src/depot_tools/gclient_utils.py", line 843, in run > self.item.run(*self.args, **self.kwargs) > File "/y/src/depot_tools/gclient.py", line 672, in run > file_list) > File "/y/src/depot_tools/gclient_scm.py", line 142, in RunCommand > return getattr(self, command)(options, args, file_list) > File "/y/src/depot_tools/gclient_scm.py", line 307, in update > self.UpdateSubmoduleConfig() > File "/y/src/depot_tools/gclient_scm.py", line 218, in > UpdateSubmoduleConfig > gclient_utils.CheckCallAndFilter(cmd, **kwargs) > File "/y/src/depot_tools/gclient_utils.py", line 453, in > CheckCallAndFilter > **kwargs) > File "/y/src/depot_tools/subprocess2.py", line 237, in __init__ > super(Popen, self).__init__(args, **kwargs) > File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ > errread, errwrite) > File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child > raise child_exception > OSError: [Errno 2] No such file or directory: '/y/src/chrome/src' > Sending crash report ... > args: ['/y/src/depot_tools/gclient.py', 'sync', '--nohooks'] > cwd: /y/src/chrome > exception: [Errno 2] No such file or directory: '/y/src/chrom > host: mmueller2.mtv.corp.google.com > stack: File "/y/src/depot_tools/gclient.py", line 1926, > user: mattm > version: 2.7.3 (default, Sep 26 2013, 20:03:06) > [GCC 4.6.3 > A stack trace has been sent to the maintainers. > Traceback (most recent call last): > File "/y/src/depot_tools/fetch.py", line 299, in <module> > sys.exit(main()) > File "/y/src/depot_tools/fetch.py", line 295, in main > return run(options, spec, root) > File "/y/src/depot_tools/fetch.py", line 289, in run > return checkout.init() > File "/y/src/depot_tools/fetch.py", line 152, in init > super(GclientGitSvnCheckout, self).init() > File "/y/src/depot_tools/fetch.py", line 118, in init > self.run_gclient('sync', '--nohooks') > File "/y/src/depot_tools/fetch.py", line 75, in run_gclient > return self.run(cmd_prefix + cmd, **kwargs) > File "/y/src/depot_tools/fetch.py", line 65, in run > return subprocess.check_call(cmd, **kwargs) > File "/usr/lib/python2.7/subprocess.py", line 511, in check_call > raise CalledProcessError(retcode, cmd) > subprocess.CalledProcessError: Command '('gclient', 'sync', '--nohooks')' > returned non-zero exit status 1 > > > > I reverted it in my depot_tools checkout and now am fetching successfully. > > > https://codereview.chromium.org/164053003/ To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org. |