Commit Graph

720 Commits (68c511349d6ee2a50e3b7e3ce96b8a06034d304e)

Author SHA1 Message Date
Edward Lemur 8f8a50d00a gclient: Make built-in vars available for expansion.
Make it possible to refer to built-in variables without having to declare
then in DEPS files.

Bug: None
Change-Id: I5403963052463befc074f29750de56cce13927ce
Reviewed-on: https://chromium-review.googlesource.com/c/1312234
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 5b1fa949bb gclient: Sync CIPD deps before running hooks.
Bug: 882611
Change-Id: I72646544a164f557ea7d53e0ce0f16d663618a98
Reviewed-on: https://chromium-review.googlesource.com/c/1255446
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 647e1e79eb Reland "gclient: delete unversioned directory before adding cipd dep for the same path"
This is a reland of 67ef3f67e8

We no longer call cipd unconditionally.

Original change's description:
> gclient: delete unversioned directory before adding cipd dep for the same path
>
> Bug: 882611
> Change-Id: I46e41cc9693b90874b5d6569a12ec638eaac1050
> Reviewed-on: https://chromium-review.googlesource.com/1228655
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>

Bug: 882611
Change-Id: I683bfc62bd1eebfec0853583f96f3981c2c6bdf2
Reviewed-on: https://chromium-review.googlesource.com/1232891
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Andrii Shyshkalov 07b5283a4e Revert "gclient: delete unversioned directory before adding cipd dep for the same path"
This reverts commit 67ef3f67e8.

Reason for revert: might have broken GCE/ccompute fleet.

Original change's description:
> gclient: delete unversioned directory before adding cipd dep for the same path
> 
> Bug: 882611
> Change-Id: I46e41cc9693b90874b5d6569a12ec638eaac1050
> Reviewed-on: https://chromium-review.googlesource.com/1228655
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>

TBR=tandrii@chromium.org,ehmaldonado@chromium.org

Change-Id: Ia2172b1b0d236357edf93dacf57f3bf7d80d5968
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 882611
Reviewed-on: https://chromium-review.googlesource.com/1231699
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Edward Lemur 67ef3f67e8 gclient: delete unversioned directory before adding cipd dep for the same path
Bug: 882611
Change-Id: I46e41cc9693b90874b5d6569a12ec638eaac1050
Reviewed-on: https://chromium-review.googlesource.com/1228655
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Corentin Wallez a68660d0bb gclient: add use_relative_hooks
When a recursive dependency has use_relative_paths it also makes sense
to have the hooks working directory by the dependency's directory.
Otherwise if a hook uses one of the relative dependencies it is impossible
to know which path prefix to use.

However we cannot change the behavior of hooks with use_relative_paths
because it would break existing projects that use_relative_paths but
hardcoded the prefix for hooks. Instead we add a second boolean,
use_relative_hooks that triggers the behavior.

Adds tests for the new behavior and a test for existing interactio
between hooks and recursedeps.

BUG=chromium:875245

Change-Id: Ie4c526baa425ff887b3be54e0feca7c597ededec
Reviewed-on: https://chromium-review.googlesource.com/1213327
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Corentin Wallez aca984cbf1 Add test for a weirdness of gclient use_relative_paths and recurse_deps
BUG=

Change-Id: I1f8be18b821d45564bbabbd4e90eb2624d51a3f9
Reviewed-on: https://chromium-review.googlesource.com/1213582
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
7 years ago
Edward Lemur 6a4e31b488 gclient_scm: Add option to specify the branch the patch is based on.
Also add shortcuts, so we don't have to look through all the branches
if the patch is based on a common branch (i.e. master, infra/config, lkgr)


Bug: 870279
Change-Id: I625a8481dccac9a475b096b926e6fab7efe676b0
Reviewed-on: https://chromium-review.googlesource.com/1161094
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Edward Lemur 6f812e132d metrics: Separate metrics collection and print notice logic.
As it is right now, when a function is collecting metrics it prints
the notice and calls sys.exit() to ensure the notice is the last thing
that is printed.

git-cl split has to call git-cl upload multiple times, but once it has
been called once, it exits, so only the first cl is uploaded.

This separates metrics collection from notice printing, so that the
function that is collecting metrics behaves like a function that isn't.
It also makes sure we don't collect metrics for multiple functions at
the same time.

Bug: 868280
Change-Id: Ic58ebe7d19e09ed85fa8b0af76dcbf608ee4c9bc
Reviewed-on: https://chromium-review.googlesource.com/1153503
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Wang Qing 254538b955 MIPS64: Add support for depot_tools on mips64.
BUG= 865294

R= tandrii@chromium.org

Change-Id: I8ad56887882b897d605dc92e0e61c17de0a74967
Reviewed-on: https://chromium-review.googlesource.com/1141563
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
7 years ago
Edward Lemur 40764b07d0 gclient: Report project url if it's a known project.
Bug: 832386
Change-Id: I98aba686f8d575def9a9050c77c057b1749e3235
Reviewed-on: https://chromium-review.googlesource.com/1141164
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 3298e7b592 gclient: Start reporting metrics.
Bug: 832386
Change-Id: I6d1167802f077bcd67bf004ccc417661d8fff3c7
Reviewed-on: https://chromium-review.googlesource.com/1135903
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Joey Scarr 8d3925b164 Add support to gclient for skipping CIPD deps.
I want to use this in the Codesearch builder to replace the hack in
crrev.com/c/1126693.

Bug: 860397
Change-Id: I174a684cbff0f993b5c657bc2e32105cb49d253a
Reviewed-on: https://chromium-review.googlesource.com/1132266
Commit-Queue: Joey Scarr <jsca@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 8a2e331aa7 Collect metrics for 'git nav-downstream'
Check that everything works with git nav-downstream, which we're not afraid of breaking

Bug: 832386
Change-Id: I7c7561c749bc72cc12804c4ebce8f827ed8be02b
Reviewed-on: https://chromium-review.googlesource.com/1134518
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 32e3d1e37c Add a library for monitoring.
Change-Id: I64c3d143186be938042c12e2455bdb034d3bcba8
Reviewed-on: https://chromium-review.googlesource.com/1079639
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Robert Iannucci a19649b86b Clean up cache_dir handling in gclient/git_cache/bot_update.
This CL makes a couple changes:
  * The goal here is to be able to specify git cache entirely from the
    environment variable $GIT_CACHE_PATH and not require special treatment from
    bot_update. Eventually this will be specified at the swarming task level
    instead of in the recipe (i.e. "cached git" will eventually be an
    implementation detail of git on the bots and completely transparent to
    all other software).
  * Removal of the general --cache-dir option from gclient. This option was
    error-prone; it doesn't actually make sense to configure this on
    a per-invocation basis. The sole exception was `gclient config`, which
    now allows this option to be set directly.
  * Consolidation of GitWrapper.cache_dir and GitWrapper._GetMirror; previously
    these two things could disagree, leading to weird intermediate states. Now
    they're the same value.

R=agable@chromium.org, ehmaldonado@chromium.org, tandrii@chromium.org

Bug: 823434
Change-Id: I14adc7619b5fc10768ce32be2651c6215ba94aff
Reviewed-on: https://chromium-review.googlesource.com/1105473
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
7 years ago
John Budorick c35aba51d3 gclient: escape cipd variables when flattening DEPS.
crrev.com/c/1097623 broke the official bots because the cipd variable
escaping present in the normal DEPS file wasn't present in the flattened
DEPS file.

Change-Id: Iaae8b95a9d8c5ce0ed80071169e731a24e98b4c4
Reviewed-on: https://chromium-review.googlesource.com/1112935
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lemur e4e15044c3 gclient: Don't include CIPD package name in hierarchy.
It causes flakiness, since the package that is responsible for
printing the dependency is not always the same.

Bug: None
Change-Id: I887d740d6a903cb0d5e6c080b76feab78a54effd
Reviewed-on: https://chromium-review.googlesource.com/1116191
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 7ccf2f0c21 gclient: Report what dependencies were not processed.
Report the dependencies that were not synced, due to their, or their parent's
condition evaluating to False.

Bug: 853010
Change-Id: I375703a1b91e3c3e31e444b0df1c95ecae17b6ba
Reviewed-on: https://chromium-review.googlesource.com/1111113
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur e42137040a gclient: Make gclient respect unmanaged dependencies when syncing.
gclient syncs unmanaged dependencies when '--revision' files are passed,
regardless of whether the dependency appears in the revision flags or not.

Bug: 853032
Change-Id: I66de0865e1103d92524f565f4392dae24a5648e1
Reviewed-on: https://chromium-review.googlesource.com/1105416
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
John Budorick 4099daa97b gclient: Use posixpath-style separators for cipd subdirs on all platforms.
Bug: 854219
Change-Id: Ibd83135dcb96979f8ab989a248e3e2cf59b9dd43
Reviewed-on: https://chromium-review.googlesource.com/1106698
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Michael Moss d683d7ced4 Revert "gclient: Don't allow None URLs (except in .gclient files)"
This reverts commit 0c91147d50.

Reason for revert: This is causing 'gclient revinfo' to fail on the release builders, and appears to be somehow related to the "--output-json" flag.

Original change's description:
> gclient: Don't allow None URLs (except in .gclient files)
> 
> This reverts commit crrev.com/4e9b50ab86b9b9f8ebf0b9ba6bd4954217ebeff9
> and thus relands the following commits:
> 
>   ebdd0db493b20f0abeab8960e6ea0ceb7c6b379a: "gclient: Remove URLs from hierarchy."
>   54a5c2ba8ac2f9b8f4a32fe79913f13545e4aab9: "gclient: Refactor PrintRevInfo"
>   083eb25f9acbe034db94a1bd5c1659125b6ebf98: "gclient: Don't allow URL to be None."
> 
> When a None URL is specified in a .gclient file, and a DEPS file is
> given, the DEPS file is treated as a .gclient file and its dependencies
> are added.
> 
> Bug: 839925
> 
> Change-Id: I1068b66487874bfa0a788bf9da5273714b6ad39e
> Reviewed-on: https://chromium-review.googlesource.com/1083340
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Reviewed-by: Michael Moss <mmoss@chromium.org>

TBR=agable@chromium.org,mmoss@chromium.org,ehmaldonado@chromium.org

Change-Id: I46785bd272b16b3672e553b6443cee6d6b370ec1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 839925, 853093
Reviewed-on: https://chromium-review.googlesource.com/1101978
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lemur 0c91147d50 gclient: Don't allow None URLs (except in .gclient files)
This reverts commit crrev.com/4e9b50ab86b9b9f8ebf0b9ba6bd4954217ebeff9
and thus relands the following commits:

  ebdd0db493b20f0abeab8960e6ea0ceb7c6b379a: "gclient: Remove URLs from hierarchy."
  54a5c2ba8ac2f9b8f4a32fe79913f13545e4aab9: "gclient: Refactor PrintRevInfo"
  083eb25f9acbe034db94a1bd5c1659125b6ebf98: "gclient: Don't allow URL to be None."

When a None URL is specified in a .gclient file, and a DEPS file is
given, the DEPS file is treated as a .gclient file and its dependencies
are added.

Bug: 839925

Change-Id: I1068b66487874bfa0a788bf9da5273714b6ad39e
Reviewed-on: https://chromium-review.googlesource.com/1083340
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lemur fbb06aaab1 gclient: Use only recursedeps to decide whether to process a dependency.
Bug: 839925
Change-Id: If86cfbdbea795b6da53dec1ea6e44c5af8a3b846
Reviewed-on: https://chromium-review.googlesource.com/1086270
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur e05f18d477 Reland "Reland "Expand variables in gclient flattened output.""
This is a reland of ff62224443
should_process was set to None in the previous attempt, so CIPD dependencies were not processed.
This CL fixed that.

Original change's description:
> Reland "Expand variables in gclient flattened output."
>
> This is a reland of a32f98e652
>
> Original change's description:
> > Expand variables in gclient flattened output.
> >
> > Bug: 848990
> > Change-Id: I0ad7e4f965973edbc5a335bd30f9cbd7b04abff2
> > Reviewed-on: https://chromium-review.googlesource.com/1085996
> > Reviewed-by: Michael Moss <mmoss@chromium.org>
> > Reviewed-by: Aaron Gable <agable@chromium.org>
> > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
>
> Tbr: agable@chromium.org
> Bug: 848990
> Change-Id: I7843544b79b2ab7e2046c187d13ea3eb65fc1b7d
> Reviewed-on: https://chromium-review.googlesource.com/1085975
> Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

Bug: 848990
Change-Id: Ic804be1b84bf8402a741a4189b60372075dfb6f3
Reviewed-on: https://chromium-review.googlesource.com/1087368
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
John Budorick b990770386 Revert "Reland "Expand variables in gclient flattened output.""
This reverts commit ff62224443.

Reason for revert: spec revert for crbug.com/849374

Original change's description:
> Reland "Expand variables in gclient flattened output."
> 
> This is a reland of a32f98e652
> 
> Original change's description:
> > Expand variables in gclient flattened output.
> >
> > Bug: 848990
> > Change-Id: I0ad7e4f965973edbc5a335bd30f9cbd7b04abff2
> > Reviewed-on: https://chromium-review.googlesource.com/1085996
> > Reviewed-by: Michael Moss <mmoss@chromium.org>
> > Reviewed-by: Aaron Gable <agable@chromium.org>
> > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> 
> Tbr: agable@chromium.org
> Bug: 848990
> Change-Id: I7843544b79b2ab7e2046c187d13ea3eb65fc1b7d
> Reviewed-on: https://chromium-review.googlesource.com/1085975
> Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

TBR=agable@chromium.org,mmoss@chromium.org,ehmaldonado@chromium.org

Change-Id: I89ffb80893be72f60043e8a6e02f6c0fb6fe5cc1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 848990
Reviewed-on: https://chromium-review.googlesource.com/1086747
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
7 years ago
Edward Lemur ff62224443 Reland "Expand variables in gclient flattened output."
This is a reland of a32f98e652

Original change's description:
> Expand variables in gclient flattened output.
>
> Bug: 848990
> Change-Id: I0ad7e4f965973edbc5a335bd30f9cbd7b04abff2
> Reviewed-on: https://chromium-review.googlesource.com/1085996
> Reviewed-by: Michael Moss <mmoss@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

Tbr: agable@chromium.org
Bug: 848990
Change-Id: I7843544b79b2ab7e2046c187d13ea3eb65fc1b7d
Reviewed-on: https://chromium-review.googlesource.com/1085975
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 01cb51055e Revert "Expand variables in gclient flattened output."
This reverts commit a32f98e652.

Reason for revert:
Doesn't work when there are variables which definition includes other variables, e.g.:

'cros_download_vm': '"{cros_board}" == "amd64_generic"',

Original change's description:
> Expand variables in gclient flattened output.
> 
> Bug: 848990
> Change-Id: I0ad7e4f965973edbc5a335bd30f9cbd7b04abff2
> Reviewed-on: https://chromium-review.googlesource.com/1085996
> Reviewed-by: Michael Moss <mmoss@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

TBR=agable@chromium.org,mmoss@chromium.org,ehmaldonado@chromium.org

Change-Id: I7e81000e92aa352e45b420845bb1dcc8572f1962
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 848990
Reviewed-on: https://chromium-review.googlesource.com/1085974
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur a32f98e652 Expand variables in gclient flattened output.
Bug: 848990
Change-Id: I0ad7e4f965973edbc5a335bd30f9cbd7b04abff2
Reviewed-on: https://chromium-review.googlesource.com/1085996
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Sergiy Byelozyorov 518bb6847a Include "fuchsia" as a known "deps_os" value
This fixes an issue where "--deps=all" syncs everything but fuchsia.

R=machenbach@chromium.org, tandrii@chromium.org, wez@chromium.org

Bug: 848676
Change-Id: I782184b615968140d0e9a0146169fa12a9ebe0c5
Reviewed-on: https://chromium-review.googlesource.com/1084211
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
7 years ago
Michael Moss 4e9b50ab86 Revert recent gclient.py changes to fix Chrome releases.
Reason for revert: This is breaking official release scripts, which have long
used "None" URL functionality to allow gclient commands to run against
"local" DEPS (buildspec) files. Please do not remove this behavior.

This reverts the following commits:
  ebdd0db493b20f0abeab8960e6ea0ceb7c6b379a: "gclient: Remove URLs from hierarchy."
  54a5c2ba8ac2f9b8f4a32fe79913f13545e4aab9: "gclient: Refactor PrintRevInfo"
  083eb25f9acbe034db94a1bd5c1659125b6ebf98: "gclient: Don't allow URL to be None."

BUG=846194

TBR=agable@chromium.org,ehmaldonado@chromium.org

Change-Id: Ibdd5581889bd4afd86474199c7b64555f01bbbca
Reviewed-on: https://chromium-review.googlesource.com/1070893
Commit-Queue: Michael Moss <mmoss@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lemur ebdd0db493 gclient: Remove URLs from hierarchy.
Bug: 839925
Change-Id: I66d0bd074433288e780e1bdde9ebfce4fa85db0f
Reviewed-on: https://chromium-review.googlesource.com/1067496
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 54a5c2ba8a gclient: Refactor PrintRevInfo
Bug: 839925
Change-Id: I9d1b2572676a7d61862382f6882622521d28ef97
Reviewed-on: https://chromium-review.googlesource.com/1068250
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 083eb25f9a gclient: Don't allow URL to be None.
Bug: 839925
Change-Id: I5a559db846ac19e3c61e77f3019c7d5362beccba
Reviewed-on: https://chromium-review.googlesource.com/1063029
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 4727c64750 gclient: Fix getdep and setdep and add tests.
Bug: 843917, 839925
Change-Id: I84e52c95fc91d67375d4d954018f057561896914
Reviewed-on: https://chromium-review.googlesource.com/1064005
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 23a358764d gclient: Fix for extra custom_deps.
Custom deps not present in DEPS files cause errors when syncing, since
we add them as strings in postprocess_deps, but deps_to_objects expects
a dictionary.

TBR=agable@chromium.org

Bug: 839925
Change-Id: Ic08a83e8692f1bf90d4456c72fe99493363ba747
Reviewed-on: https://chromium-review.googlesource.com/1063326
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur ed1bb34fc5 gclient: Remove condition_value.
It not used anywhere.

Bug: 839925
Change-Id: Iad07b548744f2c58d34427f3e2225d8c75926eea
Reviewed-on: https://chromium-review.googlesource.com/1060632
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lemur 16f4bad914 gclient: Merge hook_os with hooks and deps_os with os.
This is done in gclient_eval, so we can remove all code
that deals with deps_os and hooks_os from gclient.

Bug: 839925
Change-Id: I491819207a712d62008ff010e313add87d22c937
Reviewed-on: https://chromium-review.googlesource.com/1058375
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lemur babd098f36 gclient: Simplify GetScmName and CreateSCM.
Bug: 839925
Change-Id: Ibf97acf3c74b6f406904e14545e13497c680b883
Reviewed-on: https://chromium-review.googlesource.com/1054852
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
John Budorick d1de725e0b gclient: Prevent unprocessed deps from overriding processed ones in sync output.
Bug: 842235
Change-Id: Ie1a00b19a7ebb99dbac4a86562d4eb31493c216d
Reviewed-on: https://chromium-review.googlesource.com/1055683
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur e7273d2501 Reland "gclient: Get rid of parsed_url."
This is a reland of e877b1776a

Original change's description:
> gclient: Get rid of parsed_url.
>
> There is no reason I can see to set parsed_url so late.
> Also, the tests are misleading, since relative URLs don't behave the way
> the tests led you to believe.
>
> Bug: 839925
> Change-Id: I08d92b7b7847bdc406f003d4a4139d968cc662b1
> Reviewed-on: https://chromium-review.googlesource.com/1047797
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>

TBR=agable@chromium.org

Bug: 839925
Change-Id: I9200ec5fbe7289022e9754f0c78676dc931fcaeb
Reviewed-on: https://chromium-review.googlesource.com/1054567
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
7 years ago
John Budorick 2191308678 Revert "gclient: Get rid of parsed_url."
Suspected of breaking the world.

This reverts commit e877b1776a.

TBR=ehmaldonado@chromium.org,tandrii@chromium.org
Bug: 841936
Change-Id: Iad2b55a2235d8d0b1a3d7681cbd577f795cb89dd
Reviewed-on: https://chromium-review.googlesource.com/1054440
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
7 years ago
Edward Lemur e877b1776a gclient: Get rid of parsed_url.
There is no reason I can see to set parsed_url so late.
Also, the tests are misleading, since relative URLs don't behave the way
the tests led you to believe.

Bug: 839925
Change-Id: I08d92b7b7847bdc406f003d4a4139d968cc662b1
Reviewed-on: https://chromium-review.googlesource.com/1047797
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
7 years ago
Edward Lemur b61d387fa2 gclient: Make GetScmName and CreateSCM abstract methods.
Long term plan is to separate GitDependency and CipdDependency,
where most of the current Dependency code is moved to GitDependency,
since it's not relevant to Cipd anyway.

Bug: 839925
Change-Id: Ic238a24fa7add302704934f79004e8a9ca886895
Reviewed-on: https://chromium-review.googlesource.com/1044651
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
7 years ago
Michael Moss 848c86e3e8 Make 'gclient_gn_args*' handling consistent between sync and flatten.
Previously, 'gclient sync' would process "gn_args" settings in any
recursed DEPS files, potentially producing multiple output files or
conflicting output files, but 'gclient flatten' would only ever include
one set of "gn_args" settings in the flattened output, and only if they
occurred in the top-level DEPS file.

This makes 'gclient sync' and 'gclient flatten' more consistent by
restricting them both to a single instance of those setting, and
requiring those setting to be defined either in the top-level DEPS file,
or in a recursedeps file specificed by the new 'gclient_gn_args_from'
setting.

R=dpranke@google.com, ehmaldonado@google.com

Bug: 825063
Change-Id: If90d952e47367c50b36daade16a26b29aec0c9db
Reviewed-on: https://chromium-review.googlesource.com/1039870
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lesmes 990148ed24 gclient: Fix logic to match --patch-ref with dependencies.
Accept cases when the origin in --patch-ref ends in .git but the URL in
.gclient or DEPS doesn't.

R=agable@chromium.org

Bug: 643346
Change-Id: I25e6fd8400b09c7e249578cfbd7e9485bab9ea85
Reviewed-on: https://chromium-review.googlesource.com/1030893
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes 5d6cde3941 gclient: Don't parse DEPS files that we won't recurse into.
Bug: 830306
Change-Id: I419f16583dc2bf4bd2a66a41eb73fff4802686a8
Reviewed-on: https://chromium-review.googlesource.com/1011391
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Michael Moss da55cdc03c Apply parent vars to recursedeps.
This fixes an issue where cumulative conditions would fail to evaluate
if the recursed DEP (or custom_var overrides) didn't happen to redeclare
all the variables used by the parent conditions.

TBR=dpranke@google.com, ehmaldonado@google.com

Bug: 825063
Change-Id: Icb53f04928f914dfacc2c3035d01be103d9f8247
Reviewed-on: https://chromium-review.googlesource.com/1000836
Commit-Queue: Michael Moss <mmoss@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lesmes 411041f9be gclient: Add a command to get revision/variable information.
Introduce a getdep command to get revision/version/variable value information
as a counterpart for gclient setdep.

It will be useful for autorollers.

Bug: 760633
Change-Id: Iabeae0e78c6fbdcb1a3a79cfb380ac2d83f256d5
Reviewed-on: https://chromium-review.googlesource.com/999171
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 0ecf6d6a15 gclient setdep: Command line interface nits.
'setdep' now shows as a command when typing 'gclient help'.
We now use parser errors to indicate invalid formatting of flags, and
raise an error when there are unused arguments.

R=agable@chromium.org

Bug: 760633
Change-Id: I37fa65ef0c2cff9de1234efcf22bcd888a5e9589
Reviewed-on: https://chromium-review.googlesource.com/998741
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes 3d99381342 gclient setdep: Add support to create new variables.
If the variable doesn't already exist, gclient setdep will attempt to
create a new variable with the given name and value as the first variable
in the vars dict.

R=agable@chromium.org, mmoss@chromium.org

Bug: 760633
Change-Id: I2462e70c3695a730f87c58e56c639104efbfa54a
Reviewed-on: https://chromium-review.googlesource.com/989282
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Michael Moss 012013ee59 Add tests and fixes for |None| url values in deps entries.
This is useful for processing purely "local" DEPS files, with a command-line like:
  gclient revinfo --output-json /tmp/out \
    --spec 'solutions=[{"name": ".", "deps_file": "myDEPS", "url": None}]'

This is specifically to fix the "revinfo --output-json" case, but it
also cleans up some errors in the 'flattening' test cases. Note that
None values already work when using 'revinfo' with stdout output, it's
just the json output that complains.

BUG=825063

Change-Id: If5f69ba51cb9d0aa0f2b48a2f9b4ed8706b4c738
Reviewed-on: https://chromium-review.googlesource.com/989022
Commit-Queue: Michael Moss <mmoss@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes bb16e339ce gclient: Search also for URL + '.git' when looking for dependencies.
The URLs for the dependencies in DEPS files might end in '.git', so
search for them too.

R=agable@chromium.org

Bug: 643346
Change-Id: I955c2750179b54fec26423f5123b3fa7eea38d96
Reviewed-on: https://chromium-review.googlesource.com/987630
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes 6c24d37fe9 Reland "gclient eval: Expand vars while parsing DEPS files"
This is a reland of 88f9c40e0c

We no longer need the vars dict to be declared before vars can be used.
This was causing problems because gclient flatten printed vars after deps,
breaking the above assumption.

Original change's description:
> gclient eval: Expand vars while parsing DEPS files
>
> Introduce a Parse function that takes care of expanding vars while parsing
> the DEPS file.
>
> It wraps Exec and exec calls, and supports deferring the expansion until
> later, so gclient flatten gets access to the unexpanded version.
>
> Bug: 821199
> Change-Id: I943b021cc4474c9cda67b3816b841dd8ada3f5b2
> Reviewed-on: https://chromium-review.googlesource.com/973749
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>

Bug: 821199
Change-Id: I583df23558f91871e1a2aa2574c20d35e54635f6
Reviewed-on: https://chromium-review.googlesource.com/981086
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Michael Moss fe68c91e47 Add hierarchy information to flattened "visited DEPS" output.
This will make it easier to programmatically determine where a flattened
entry originated, which is needed for recursively branching and
unpinning DEPS files.

BUG=825063
R=dpranke@google.com

Change-Id: Id280c0b0a95b8664602e0ec4513722fe4d6d1ebf
Reviewed-on: https://chromium-review.googlesource.com/977326
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
7 years ago
Egor Pasko 4732b3b1c4 Revert (Reland "gclient eval: Expand vars while parsing DEPS files")
This reverts commits:
  dbbf350a34 Fix trailing whitespace test.
  b4f1d4498c Fix actual pylint errors.
  0d9ecc925d Reland "gclient eval: Expand vars while parsing DEPS files"

Reason: http://crbug.com/825724 Clank Official Build Failure - 65.0.3325.193

TBR=agable@chromium.org

Bug: 825724
Change-Id: Icef2d0ccc8a13b782a8e3d6b474b1281820947b5
Reviewed-on: https://chromium-review.googlesource.com/980334
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 0d9ecc925d Reland "gclient eval: Expand vars while parsing DEPS files"
This is a reland of 88f9c40e0c

Original change's description:
> gclient eval: Expand vars while parsing DEPS files
> 
> Introduce a Parse function that takes care of expanding vars while parsing
> the DEPS file.
> 
> It wraps Exec and exec calls, and supports deferring the expansion until
> later, so gclient flatten gets access to the unexpanded version.
> 
> Bug: 821199
> Change-Id: I943b021cc4474c9cda67b3816b841dd8ada3f5b2
> Reviewed-on: https://chromium-review.googlesource.com/973749
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>

Bug: 821199
Change-Id: Ic04af0cae59abc01a0382e2de3497a91cf7e62fd
Reviewed-on: https://chromium-review.googlesource.com/978561
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Benjamin Pastene 728244f70a Revert "gclient eval: Expand vars while parsing DEPS files"
This reverts commit 88f9c40e0c.

Reason for revert: suspected to be causing update scripts failures and prevent gce bots from connecting
https://build.chromium.org/deprecated/tryserver.chromium.win/builders/win7_chromium_rel_ng/builds/128479/steps/update_scripts/logs/stdio

Original change's description:
> gclient eval: Expand vars while parsing DEPS files
> 
> Introduce a Parse function that takes care of expanding vars while parsing
> the DEPS file.
> 
> It wraps Exec and exec calls, and supports deferring the expansion until
> later, so gclient flatten gets access to the unexpanded version.
> 
> Bug: 821199
> Change-Id: I943b021cc4474c9cda67b3816b841dd8ada3f5b2
> Reviewed-on: https://chromium-review.googlesource.com/973749
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>

TBR=agable@chromium.org,dpranke@chromium.org,ehmaldonado@chromium.org

Change-Id: Ib9b84c13ef9b56735fd8f714b74a6601c61715e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 821199
Reviewed-on: https://chromium-review.googlesource.com/976721
Reviewed-by: Benjamin Pastene <bpastene@chromium.org>
Commit-Queue: Benjamin Pastene <bpastene@chromium.org>
7 years ago
Edward Lesmes 88f9c40e0c gclient eval: Expand vars while parsing DEPS files
Introduce a Parse function that takes care of expanding vars while parsing
the DEPS file.

It wraps Exec and exec calls, and supports deferring the expansion until
later, so gclient flatten gets access to the unexpanded version.

Bug: 821199
Change-Id: I943b021cc4474c9cda67b3816b841dd8ada3f5b2
Reviewed-on: https://chromium-review.googlesource.com/973749
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
7 years ago
Edward Lesmes c621b21ad4 gclient sync: Add support to apply gerrit refs.
Mimics bot_update's functionality to apply gerrit refs in gclient
via --gerrit-ref flags.
When the patch fails to apply, gclient sync will return exit code 2.

The idea is to move this logic from bot_update to gclient sync to
deal when patches for projects like ANGLE are tried on Chromium bots.
This way the patch is applied before recursively parsing and syncing
ANGLE’s DEPS.chromium file, which doesn't currently happen.

Bug: 643346

Change-Id: I7e2018b3c393a5ac9852b8c3611f906977eeeb18
Reviewed-on: https://chromium-review.googlesource.com/961605
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Lei Zhang 869a2857a4 Revert "Add debugging info when gclient deletes an old DEPS entry."
This reverts commit 33bf49538c.

Reason for revert: Done debugging.

Original change's description:
> Add debugging info when gclient deletes an old DEPS entry.
> 
> To help figure out why it decided to do so.
> 
> BUG=823586
> 
> Change-Id: I93d7c9f7af6145ee0ebd9f5ad4483f27925e84d6
> Reviewed-on: https://chromium-review.googlesource.com/970082
> Commit-Queue: Lei Zhang <thestig@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>

TBR=thestig@chromium.org,agable@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 823586
Change-Id: I476cbe423b849582f8684426653f0c08062e89e9
Reviewed-on: https://chromium-review.googlesource.com/974458
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
7 years ago
Edward Lesmes 9f531298e1 gclient eval: Get rid of global_scope, local_scope and functions other than Var.
Since we only support Var, and Var only does one thing, we hard code that
into the parser. Then, we don't need global_scope.

local_scope hasn't been needed for a while.

Bug: 760633
Change-Id: I21b171a8b71e7dcaf8e29c780ca88b9f46f368e8
Reviewed-on: https://chromium-review.googlesource.com/972611
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 6f64a0522b Reland "gclient: Add commands to edit dependencies and variables in DEPS"
This is a reland of 7f4c905fc5

Original change's description:
> gclient: Add commands to edit dependencies and variables in DEPS
> 
> Adds 'gclient setvar' and 'gclient setdep' commands to edit variables
> and dependencies in a DEPS file.
> 
> Bug: 760633
> Change-Id: I6c0712cc079dbbbaee6541b7eda71f4b4813b77b
> Reviewed-on: https://chromium-review.googlesource.com/950405
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>

Bug: 760633
Change-Id: Ia46c74d02e5cc3b67517dfa248f597cb3d98ef3d
Reviewed-on: https://chromium-review.googlesource.com/969457
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
John Budorick d3ba72bbc6 [gclient] Use a single CIPD root for an entire gclient checkout.
gclient previously used a CIPD root per DEPS file. This didn't work
in cases in which a DEPS file wanted to specify a CIPD package outside
of its directory hierarchy, though, as is the case with buildspecs.

Bug: 755920
Change-Id: I0d6c3db567f17f9171c0feaaf9ed6bc64db22757
Reviewed-on: https://chromium-review.googlesource.com/955933
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
7 years ago
Lei Zhang 33bf49538c Add debugging info when gclient deletes an old DEPS entry.
To help figure out why it decided to do so.

BUG=823586

Change-Id: I93d7c9f7af6145ee0ebd9f5ad4483f27925e84d6
Reviewed-on: https://chromium-review.googlesource.com/970082
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes 0b89935ad6 Revert "gclient: Add commands to edit dependencies and variables in DEPS"
This reverts commit 7f4c905fc5.

Reason for revert:
When running "gclient sync" on a V8 checkout, it says:

  File "/work/chrome/depot_tools/gclient.py", line 995, in run
   self.ParseDepsFile()
 File "/work/chrome/depot_tools/gclient.py", line 874, in ParseDepsFile
   self._postprocess_deps(deps, rel_prefix), use_relative_paths)
 File "/work/chrome/depot_tools/gclient.py", line 660, in _postprocess_deps
   dval['condition'], self.condition)
TypeError: '_NodeDict' object does not support item assignment

on the recursive descent into third_party/android_tools/DEPS. Any chance that's related to https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/950405 ?

Original change's description:
> gclient: Add commands to edit dependencies and variables in DEPS
> 
> Adds 'gclient setvar' and 'gclient setdep' commands to edit variables
> and dependencies in a DEPS file.
> 
> Bug: 760633
> Change-Id: I6c0712cc079dbbbaee6541b7eda71f4b4813b77b
> Reviewed-on: https://chromium-review.googlesource.com/950405
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Aaron Gable <agable@chromium.org>

TBR=agable@chromium.org,ehmaldonado@chromium.org

Change-Id: If58f6b15d31b19fc53294f1e41d26b4e684a2cf9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 760633
Reviewed-on: https://chromium-review.googlesource.com/969165
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 7f4c905fc5 gclient: Add commands to edit dependencies and variables in DEPS
Adds 'gclient setvar' and 'gclient setdep' commands to edit variables
and dependencies in a DEPS file.

Bug: 760633
Change-Id: I6c0712cc079dbbbaee6541b7eda71f4b4813b77b
Reviewed-on: https://chromium-review.googlesource.com/950405
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes 53014653d8 gclient: Give priority to URL over paths when specifying revisions.
e.g. when specifying both '--revision src@<something>' and
'--revision <src_gerrit_repo>@<some_gerrit_ref>', gclient will sync to
'<some_gerrit_ref>' instead of '<something>'.

This is useful when specifying which gerrit change to patch, which
should take priority over other revision specifications.

Bug: chromium:643346
Change-Id: Ibc21ede355b56e4da966f38f144ce6f6f1743403
Reviewed-on: https://chromium-review.googlesource.com/949981
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes c29602466d gclient revinfo: Add an option to output a JSON file.
Add a --output-json flag to gclient revinfo so is easier for other
programs to process its output.

Bug: None
Change-Id: Ic120e7a279f3ed537ead624ab9bfd1f141485487
Reviewed-on: https://chromium-review.googlesource.com/952206
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes daa76d2f22 gclient revinfo: Add options to filter by path or url.
Add --path and --url options to show only the dependencies that match
one of the given paths or URLs.

Bug: None
Change-Id: I12c205545b7ce54b56abcd62f9bf1db229b4fd77
Reviewed-on: https://chromium-review.googlesource.com/951963
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Shenghua Zhang 6f83031f3d [cipd] Support cipd dependencies hooked under same directory
When hooks multiple cipd packages under same directory, gclient would
pop up error that same directory name appears multiple times in deps
section. This CL overrides verify_validity for CipdDependency to
support multiple packages hooked in same directory.

Bug:812386
Change-Id: Ia4f1fe0e3c8481c9b06c1d22b6e98d98e1e4c309
Reviewed-on: https://chromium-review.googlesource.com/920686
Commit-Queue: Shenghua Zhang <shenghuazhang@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Shenghua Zhang f438ff743a [cipd] Match version to vars value supporting in gclient.py
For now 'version' of packages only support string like 'version:27.0.5'.
It is helpful to support version to match vars value, e.g.
Var('tool_version'), especially useful when version numbers could be
modified via api. This change won't affect versions with string format.

Change-Id: I40b389b528f04712798b08f1455869cab2ec54c9
Reviewed-on: https://chromium-review.googlesource.com/935666
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Shenghua Zhang <shenghuazhang@chromium.org>
7 years ago
John Budorick 64e33cba17 Fix gclient flattening of CIPD deps.
Bug: 813460
Change-Id: Ie52a20dcdf5cb60ab47b787dcfa05aa8a712a727
Reviewed-on: https://chromium-review.googlesource.com/926709
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
7 years ago
Tom Anderson c31ae0b4a9 Add target_cpu builtin variable to gclient
This CL adds target_cpu and target_cpu_only variables.  The logic is:

* If target_cpu is defined in .gclient, use it.  Otherwise, initialize it as an
  empty list.
* If not target_cpu_only, add the host arch to the list too.

detect_host_arch.py is copied directly from the Chromium repo.

BUG=807986
R=dpranke

Change-Id: I27621cbc81ad6a844648525863b92ffdd3b1d03a
Reviewed-on: https://chromium-review.googlesource.com/902441
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
7 years ago
Michael Moss 42d02c27c1 Make flattened recursedeps inherit parent conditionals.
BUG=783607
R=agable@google.com, dpranke@google.com

Change-Id: I6989203a9e560930cc53254c566275a30d3bead3
Reviewed-on: https://chromium-review.googlesource.com/902168
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
7 years ago
Michael Moss ce9f17f55a Allow custom_vars to override vars in flattened output.
Flattening currently ignores custom_vars, but it looks like that was
just an attempt to avoid including all the runtime-calculated values
(e.g. the host OS) in the flattened output, and not because there's any
real issue with supporting explicit overrides.

This is useful for changing default values in the flattened buildspecs
(e.g. to enable internal checkouts by default).

R=dpranke@google.com, iannucci@google.com

Bug: 570091,807318
Change-Id: I6d743f33cf7e3e202d5e68d21657f74f0e4c001b
Reviewed-on: https://chromium-review.googlesource.com/895927
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
7 years ago
Edward Lemur 231f5eab45 Print git output when cloning a repo.
This will allow us to show the progress when cloning a new repo when running
commands like gclient sync.

R=agable@chromium.org

Bug: 722686
Change-Id: I268cba343ea4c3c024292c9341d5009aa112b184
Reviewed-on: https://chromium-review.googlesource.com/890524
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Benjamin Pastene 6fe29419be depot_tools: Add a checkout_chromeos conditional var to gclient.
This is necessary for https://chromium-review.googlesource.com/c/chromium/src/+/882196.

Bug: 776987
Change-Id: Iec0a960a7d80f3ddbc0252073e30abc5a243f06c
Reviewed-on: https://chromium-review.googlesource.com/882318
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Benjamin Pastene <bpastene@chromium.org>
7 years ago
John Budorick 0f7b2007a5 Add cipd support to gclient.
Bug: 789809
Change-Id: I9942eaa613d51edd77ee5195603932a103f5e3cd
Reviewed-on: https://chromium-review.googlesource.com/829953
Commit-Queue: John Budorick <jbudorick@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Andrii Shyshkalov 77ce4bdc7d gclient on bots: don't cleanup lock files.
bot_update & gclient on bots instruct git cache locks
to be ignored, so there is no need to clean them up.

R=hinoka@chromium.org

Change-Id: I81c52cfcd44a42d13b641847439ac92053a7bc98
Reviewed-on: https://chromium-review.googlesource.com/791652
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Nodir Turakulov 0ffcc877a6 [gclient hooks] add .bat to vpython on windows
Bug: 781430
Change-Id: Idcba016f78078aa9678b8a246e964b3dcb09a016
Reviewed-on: https://chromium-review.googlesource.com/762389
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
8 years ago
David Benjamin 105e11e251 Fix help string typo.
Bug:
Change-Id: Id7509ae08bc09c6cb291f29b55c60d6d96e79121
Reviewed-on: https://chromium-review.googlesource.com/721359
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
8 years ago
Daniel Cheng 93c5d606cb Update progress before running the hook.
This will let progress show the name of the hook while it's running.

Change-Id: I14ef2a9b5fd2bc4d8d778f5402f78a5827ffbb08
Reviewed-on: https://chromium-review.googlesource.com/731469
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Daniel Cheng a0c5f0850a Reland "gclient runhooks: now with less spammy progress notifications"
This is a reland of 5fd1defbcc
Original change's description:
> gclient runhooks: now with less spammy progress notifications
> 
> Bug: 772741
> Change-Id: I62ad64219ba27ee4ea26ceb603b1133dff4a2e04
> Reviewed-on: https://chromium-review.googlesource.com/727194
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>

Bug: 772741
Change-Id: Idd6fcd46a8c97716d68ed0975940705a90540a4d
Reviewed-on: https://chromium-review.googlesource.com/728961
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Daniel Cheng a21b5b314b Revert "gclient runhooks: now with less spammy progress notifications"
This reverts commit 5fd1defbcc.

Reason for revert: breaks v8 because hook names are optional

Original change's description:
> gclient runhooks: now with less spammy progress notifications
> 
> Bug: 772741
> Change-Id: I62ad64219ba27ee4ea26ceb603b1133dff4a2e04
> Reviewed-on: https://chromium-review.googlesource.com/727194
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>

TBR=dcheng@chromium.org,thakis@chromium.org,dpranke@chromium.org

Change-Id: I7dee0ca188f5ca34232f16e6496249fc9f49fa96
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 772741
Reviewed-on: https://chromium-review.googlesource.com/728959
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Daniel Cheng 5fd1defbcc gclient runhooks: now with less spammy progress notifications
Bug: 772741
Change-Id: I62ad64219ba27ee4ea26ceb603b1133dff4a2e04
Reviewed-on: https://chromium-review.googlesource.com/727194
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Marc-Antoine Ruel e6e0641b15 gclient: print an error message instead of crashing
When 'gclient recurse' is called from a unconfigured directory.
No functional change otherwise.

R=agable@chromium.org
Bug:774749
Change-Id: Ifb2b74c042ce31faf3e1287c5614739e58e9178c
Reviewed-on: https://chromium-review.googlesource.com/726419
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Marc-Antoine Ruel <maruel@chromium.org>
8 years ago
Dirk Pranke 9f20d02085 Do not write gclient_gn_args_file too early.
Previously, gclient would attempt to write an args file after
a dependency was checked out, but before any sub-dependencies
had been checked out. If the args file path pointed at something
inside a sub-dependency, this wouldn't work, because the directory
might not yet exist. This most obviously happened for buildspec
clobber builds.

The fix is to wait until after the sub-dependencies have been
checked out to write the file.

R=phajdan.jr@chromium.org, mmoss@chromium.org
BUG=773933

Change-Id: I0cf4564204f7dabd9f843dc7904db7050fcc0d23
Reviewed-on: https://chromium-review.googlesource.com/714644
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Michael Achenbach b3ce73d028 More verbose output when .gclient file cannot be found
Bug: 773769
Change-Id: I3c1a394c5995e0c56046da5f2509e63060aa6a29
Reviewed-on: https://chromium-review.googlesource.com/712935
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
8 years ago
Vadim Shtayura 08049e2db2 Revert "git_cache: Remove locks"
This reverts commit c3eb3fa335.

Reason for revert: lots of "runhooks" failure everywhere

Example: https://build.chromium.org/p/chromium.linux/builders/Linux%20Builder/builds/92720

Original change's description:
> git_cache: Remove locks
> 
> These aren't in use, and the original problem they were
> meant to solve has been solved at the gclient.py layer 
> using resource locking:
>   https://codereview.chromium.org/2049583003
> 
> Bug: 773008
> Change-Id: I6609f39d7f15604e0bb3d742a41c4f9fec87a57a
> Reviewed-on: https://chromium-review.googlesource.com/707728
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
> Commit-Queue: Ryan Tseng <hinoka@chromium.org>

TBR=iannucci@chromium.org,hinoka@chromium.org,agable@chromium.org,phajdan.jr@chromium.org

Change-Id: I31d5fef94f39f3a9f97b9e59121073b1f433d11e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 773008
Reviewed-on: https://chromium-review.googlesource.com/711054
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
8 years ago
Ryan Tseng c3eb3fa335 git_cache: Remove locks
These aren't in use, and the original problem they were
meant to solve has been solved at the gclient.py layer 
using resource locking:
  https://codereview.chromium.org/2049583003

Bug: 773008
Change-Id: I6609f39d7f15604e0bb3d742a41c4f9fec87a57a
Reviewed-on: https://chromium-review.googlesource.com/707728
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Ryan Tseng <hinoka@chromium.org>
8 years ago
Paweł Hajdan, Jr 3ba2a7cf38 gclient config: add support for custom vars
Bug: 570091
Change-Id: I44da3366fe4aa91240f4b3076f53e27aa4a81806
Reviewed-on: https://chromium-review.googlesource.com/700498
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr d325eb3496 gclient: make predefined variables native
See https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/687496

Bug: 570091
Change-Id: Ifb2c8473e1b1e8ae0c73365bc806a995ddbd7b74
Reviewed-on: https://chromium-review.googlesource.com/698066
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 78ce24e389 gclient flatten: properly quote conditionals
Bug: 661382
Change-Id: Id50b2541132002452bc5d86bb013758e8be0f4b0
Reviewed-on: https://chromium-review.googlesource.com/697813
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr e0214743cb gclient: add support for native boolean variables
Bug: 570091
Change-Id: I195f5f798d9869f385437db4e0bc5f4c5d4853ae
Reviewed-on: https://chromium-review.googlesource.com/687496
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr ecf53fecd6 gclient flatten: emit conditions for hooks
Bug: 661382
Change-Id: I0e74273a5e00b4f3cf1d5c22ce0944dc2fa6f31e
Reviewed-on: https://chromium-review.googlesource.com/692934
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr b495bf5017 gclient: evaluate variables before passing them to GN
This helps make sure they have proper types (e.g. True
instead of "True" for booleans).

Also see https://chromium-review.googlesource.com/c/chromium/src/+/681854
for context.

Bug: 756688, 570091
Change-Id: I1e4d26df724e8e94cc3daba361191856f80a1b2c
Reviewed-on: https://chromium-review.googlesource.com/681705
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr df64ee138a gclient: expose target_os
Bug: 570091
Change-Id: I7513f3360662975ef6ef1d9019726dcef730a586
Reviewed-on: https://chromium-review.googlesource.com/681700
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr feb01640a9 gclient flatten: improve reporting of DEPS files
- provide structured output
- take deps_file fallback into account

Bug: 756474
Change-Id: Icb15eb9601b0aaf510300cf8992b067a25f6888a
Reviewed-on: https://chromium-review.googlesource.com/663258
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Jaideep Bajwa d05f3580c4 gclient: Add aix to host_os list
R=mmoss@chromium.org, dpranke@chromium.org, phajdan.jr@chromium.org

Bug:
Change-Id: I0bfe0c38f3b1bfa5c8bd40747a0c3483d823cbdc
Reviewed-on: https://chromium-review.googlesource.com/660722
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr a3b67ae2a7 gclient: predefine host_os
Bug: 570091
Change-Id: Ib2606fcc7251221ae10a0ef18b6585841d18eef4
Reviewed-on: https://chromium-review.googlesource.com/641750
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr 0870df2817 gclient flatten: only print DEPS info referenced by recursedeps
Bug: 756474, 570091
Change-Id: I8777b611f2b77b71cf75ec64ec1f0afca2104235
Reviewed-on: https://chromium-review.googlesource.com/629082
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 76a9d04a66 gclient flatten: include info about DEPS files: repos and paths
This CL includes this as comments in flattened DEPS, as requested
on the bug. For automated processes using this, we should export
the data in machine-readable form outside of the DEPS file.

Bug: 756474, 570091
Change-Id: I78cd2105113f41d599e293e772e1f1ca42679f3c
Reviewed-on: https://chromium-review.googlesource.com/621726
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr adae2a62f7 gclient flatten: correctness fixes for OS-specific recursedeps
We need to pass OS info to recursively called _flatten_dep.
Regular deps entries in OS-specific DEPS file recursed into
need to be marked as OS-specific in the flattened file.

Bug: 570091
Change-Id: If3055b84143d8a52d10d8753113893b5054b4d07
Reviewed-on: https://chromium-review.googlesource.com/621046
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Michael Moss c54fa81235 Include "ios" as a known "deps_os" value.
This fixes an issue where "--deps=all" syncs everything but ios.

R=dpranke@chromium.org, phajdan.jr@chromium.org

Change-Id: I413269c5026b2c04f0d34d9ca874057eb35e1076
Reviewed-on: https://chromium-review.googlesource.com/618802
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Michael Moss <mmoss@chromium.org>
8 years ago
Paweł Hajdan, Jr c69b32e1ea gclient flatten: parse DEPS file for deps_os recursedeps
Bug: 570091
Change-Id: I773b74b042233efa2a525f5f47e920468b7fea4a
Reviewed-on: https://chromium-review.googlesource.com/618930
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 5ec7713bed gclient flatten: fixes for --pin-all-deps
Consistently pin all dependencies - including deps_os and ones
with shortened shas.

We add --process-all-deps switch so that users can easily
tell gclient to check out all affected dependencies locally.

Bug: 570091
Change-Id: If68db98000c569ae35dd7d0a4b695eb80a589213
Reviewed-on: https://chromium-review.googlesource.com/617224
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Aleksandr Derbenev 9e8fb0e5d7 Add --cache-dir argument to gclient.
There are some usecases where it is simpler to pass path to the 
cache by an environment variable or command-line argument 
than to modify the gclient config file.

With this change:

 * GCLIENT_CACHE_DIR environment variable overrides cache_dir variable
   from .gclient file.

 * --cache-dir argument moved from gclient config to all gclient
   commands and overrides values from .gclient file and environment
   variable.

R=dpranke@chromium.org

Bug:
Change-Id: Iae107f1d5f02a2eee1896d0d3108dc20a83d597f
Reviewed-on: https://chromium-review.googlesource.com/596089
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Commit-Queue: Aleksandr Derbenev <alex-ac@yandex-team.ru>
8 years ago
Paweł Hajdan, Jr 39300ba2a0 gclient flatten: do not double-pin entries using a non-sha revision
For example:

  # buildspec -> tools_internal_DEPS -> build/third_party/python-rsa
  "build/third_party/python-rsa": {
    "url": "{git_url}/external/github.com/sybrenstuvel/python-rsa.git@version-3.1.4",
  },

Bug: 570091
Change-Id: I5fd444908c06fbd03bdaf0715401c1dbd9fbe89f
Reviewed-on: https://chromium-review.googlesource.com/611988
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 9a289023b5 gclient flatten: do not emit deps entries without a url
Otherwise it'd get stringified to "None" and make resulting DEPS invalid.

In theory we could properly serialize them to None,
but it's simpler to just skip them, since they do not affect resulting checkout.

Bug: 570091
Change-Id: Ica301e2d7e40ba4ed04527355d8f75a43456391c
Reviewed-on: https://chromium-review.googlesource.com/610150
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 05bcb89b7e gclient flatten: preserve vars in pinned deps
Bug: 570091
Change-Id: I8c450da68fd36d166f8f838c645672fce7c03891
Reviewed-on: https://chromium-review.googlesource.com/610004
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr de86ab35fb gclient flatten: also preserve variables in deps_os entries
This is the same change as in https://chromium-review.googlesource.com/c/586594
applied to _DepsOsToLines.

Bug: 570091
Change-Id: I06a4dc3a9b6dbb001a15b1d7b88fef12cf6c6aaa
Reviewed-on: https://chromium-review.googlesource.com/609980
Reviewed-by: Emma Söderberg <emso@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 11eb715369 gclient flatten: do not add deps_os entries to deps, even with recursedeps
Bug: 570091
Change-Id: I8e67d617c2738459634aabbffd22135ee5d27cc4
Reviewed-on: https://chromium-review.googlesource.com/609065
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr e2deb1efa2 gclient flatten: do not recurse into deps that should not be recursed
This finally makes the code structure seem right as well: there's just
one method (_flatten_dep), with a simpler control flow.

Also added a regression test.

Bug: 570091
Change-Id: I22ac7a3af0429a7ffd874b4b1715c0f6c72e0006
Reviewed-on: https://chromium-review.googlesource.com/608241
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr b0ad16ee41 gclient flatten: do not recurse into deps not in recursedeps
Nice side-effect of this change is simplifying the code.

Also added regression test coverage.

Bug: 570091
Change-Id: I470e9efc319632f997b02d210483988c17a7d3c8
Reviewed-on: https://chromium-review.googlesource.com/600369
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c9353605bf gclient flatten: fixes for chromium/src
- allow variables with same names as long as values are also the same

- allow recursedeps entries referencing deps_os entries

Bug: 570091
Change-Id: I4abbd255982368a0ee33e8f3de631f3d18adf6ab
Reviewed-on: https://chromium-review.googlesource.com/583649
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 1407d00d0b gclient: make variables from parent DEPS scope override ones in inner scope
This is part of preparation for gclient flatten, conditions,
and improving internal gclient workflows.

This also ensures variables have consistent values in the entire checkout,
unlike the current situation where different DEPS files can use different
values for the same variable.

We override instead of erroring out, since otherwise commonly used dependencies
such as buildtools wuld have to be rolled simultaneously in unrelated projects,
say v8 and native_client.

Another reason for overriding are possible future use cases such as is_chromium_build,
which could be set to false e.g. in v8, but chromium DEPS would override it to true.

Bug: 570091
Change-Id: If61322dd9a55e57729a4100d05ecb9c1e3ae8e38
Reviewed-on: https://chromium-review.googlesource.com/596310
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr fc6196b306 gclient flatten: preserve variable placeholders (reland #1)
This is an exact reland of https://chromium-review.googlesource.com/583617 .

One of the main use cases is making it clear which revision hashes
need to be changed together. The way it's usually done is one variable
referenced several times. With this CL, we preserve the references
from original DEPS, as opposed to evaluating them and losing some info.

This CL actually makes Var() emit a variable placeholder
instead of its value, and adds support for these placeholders
to gclient.

One of possible next steps might be to deprecate Var().

Bug: 570091, 748486
Change-Id: Id47e3771b7163149a4cd427b84f84ece52772f34
Reviewed-on: https://chromium-review.googlesource.com/586594
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan Jr. 393ba066ef Revert "gclient flatten: preserve variable placeholders"
This reverts commit e79ddeaabf.

Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=748486

Original change's description:
> gclient flatten: preserve variable placeholders
> 
> One of the main use cases is making it clear which revision hashes
> need to be changed together. The way it's usually done is one variable
> referenced several times. With this CL, we preserve the references
> from original DEPS, as opposed to evaluating them and losing some info.
> 
> This CL actually makes Var() emit a variable placeholder
> instead of its value, and adds support for these placeholders
> to gclient.
> 
> One of possible next steps might be to deprecate Var().
> 
> Bug: 570091
> Change-Id: I9b13a691b5203cc284c33a59438720e31c9ebf7a
> Reviewed-on: https://chromium-review.googlesource.com/583617
> Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>

TBR=phajdan.jr@chromium.org,dpranke@chromium.org

Change-Id: If9c52ebfa78aba8041ce797ff842d09952d0e2ce
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 570091, 748486
Reviewed-on: https://chromium-review.googlesource.com/584907
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr e79ddeaabf gclient flatten: preserve variable placeholders
One of the main use cases is making it clear which revision hashes
need to be changed together. The way it's usually done is one variable
referenced several times. With this CL, we preserve the references
from original DEPS, as opposed to evaluating them and losing some info.

This CL actually makes Var() emit a variable placeholder
instead of its value, and adds support for these placeholders
to gclient.

One of possible next steps might be to deprecate Var().

Bug: 570091
Change-Id: I9b13a691b5203cc284c33a59438720e31c9ebf7a
Reviewed-on: https://chromium-review.googlesource.com/583617
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr 357415cb11 gclient flatten: fix a bug with some recursedeps not being processed
Added a regression test. Simplified some logic - if we don't add os-specific
deps and hooks to |dependencies|, we don't need to keep separate original values.

Bug: 570091
Change-Id: I5bdd0b6a66df6b3a2b99d0ad9c6e54ee7114f09b
Reviewed-on: https://chromium-review.googlesource.com/581687
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
8 years ago
Paweł Hajdan, Jr 271a16809a gclient flatten: implement --pin-all-deps
Bug: 570091
Change-Id: Ibf7c6a73cab8bb777a7e4a8d958f085238c76450
Reviewed-on: https://chromium-review.googlesource.com/562138
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr fb02201796 gclient flatten: include vars
ChromeOS build depends on buildspec_platforms variable, see
https://bugs.chromium.org/p/chromium/issues/detail?id=703268 .

Bug: 570091
Change-Id: I9c964d332b45cf10f5cb79a82ea721bd4aba80d3
Reviewed-on: https://chromium-review.googlesource.com/561681
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr aaf93f486a gclient flatten: refactor flatten code to a class
Instead of passing around 6+ out-parameters, keep state inside the class.

No intended behavior change.

Bug: 570091
Change-Id: Ia15c1db2170680f0ec087b61f51af49e12fd7579
Reviewed-on: https://chromium-review.googlesource.com/561700
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 807caf84e9 gclient flatten: remove --require-pinned-revisions
It turns out it most likely won't be needed. Instead, auto-pinning
deps is useful mode.

This removal helps simplify and restructure the flatten code.

Bug: 570091
Change-Id: Ia70221c88a37f210cf1338a36d79168d2cfe96f6
Reviewed-on: https://chromium-review.googlesource.com/561717
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c6846aa200 gclient flatten: fix a bug with deps_os getting omitted for recursed deps
Bug: 570091
Change-Id: I4fac33ca683ff2011fa7307d5175592f3d9e258e
Reviewed-on: https://chromium-review.googlesource.com/560171
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 4baaa11c01 gclient: avoid adding potentially duplicate entries to work queue
The main goal is to provide a migration path, where we can add
conditional src-internal entry to src/DEPS, and have it still
work on checkouts where .gclient pulls src-internal, provided
the condition evaluates to False.

The migration path is then to remove the .gclient entry, and
at the same time flip the condition to True (e.g. by overriding
a variable).

Bug: 570091
Change-Id: I9b9850a644463ab0b1f368d65a5cd5f47cf7be97
Reviewed-on: https://chromium-review.googlesource.com/559150
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr d379025129 gclient: apply custom_vars when evaluating conditions
Bug: 570091
Change-Id: Ib8009ae9ac77e50a09e3e2714cec7c67537b47a2
Reviewed-on: https://chromium-review.googlesource.com/558970
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr e015878d80 gclient flatten: fix an issue with an deps_os entry getting added to deps
The previous code did not distinguish between None and [] value for orig_deps.

This could be triggered by not having any deps, but some entries in deps_os,
in which case these deps_os entries would get added by mistake to deps.

Bug: 570091
Change-Id: Id5b41e37ea717d5d00404694ad5bfce8df9da934
Reviewed-on: https://chromium-review.googlesource.com/558349
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 6014b56642 gclient flatten: also handle allowed_hosts
Bug: 570091
Change-Id: I96417d462efb3b0476ee17d42ac5f19d8c4f99c3
Reviewed-on: https://chromium-review.googlesource.com/558352
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 5b593358a9 gclient flatten: skip empty fields
Bug: 570091
Change-Id: Ib1a86289f8219ead789e19896c2a873b8d59c179
Reviewed-on: https://chromium-review.googlesource.com/556035
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Michael Moss 017bcf67d9 Fix flattened hooks_os list formatting.
R=dpranke@chromium.org, phajdan.jr@chromium.org

Bug: 570091
Change-Id: Ic2aa1a9fe18f3fe8d5aa6fa4c4e9269106b36092
Reviewed-on: https://chromium-review.googlesource.com/553719
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Di Mu <dimu@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 96e1d78830 gclient flatten: add support for hooks_os
Bug: 570091
Change-Id: Ia7f81a81d7df75004c5f8b7560dfd50a14f4cddd
Reviewed-on: https://chromium-review.googlesource.com/549355
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
8 years ago
Paweł Hajdan, Jr ad30de6389 gclient flatten: syntax and schema fixes from actual testing
Bug: 570091
Change-Id: Iae9dad68a75d751ceac6379baac588f32c59aa06
Reviewed-on: https://chromium-review.googlesource.com/548935
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 032d545947 gclient: implement conditions for hooks
Bug: 570091
Change-Id: I5a489f9f9cbc5384b720685264aa918573234cf5
Reviewed-on: https://chromium-review.googlesource.com/544965
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr fd0057e42b gclient: include deps_os entries in dependencies (reland #1)
This is a reland of https://chromium-review.googlesource.com/c/541280/
with a fix for https://bugs.chromium.org/p/chromium/issues/detail?id=735418
(patchset 1 is original patch, patchset 2 has the fix).

Keep deps_os entries in dependencies, just with should_process set to False
for entries not applicable to target OS list.

This way gclient flatten has proper access to dependencies e.g. to evaluate
recursedeps referring to deps_os entries other than active OS.

Allow but ignore deps_os overriding a value with None, since that does not
fit the new model. There's no correctness harm in not checking out a repo.

Allow "overrides" setting given dependency to the same value. This seems
fairly common, especially for mac/ios and unix/android, even in chromium/src.

Bug: 570091, 735418
Change-Id: I6eba0e4be202212eb86cb959c18f2b2f0c1452b9
Reviewed-on: https://chromium-review.googlesource.com/543076
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Andrii Shyshkalov 806b70187d Revert "gclient: include deps_os entries in dependencies"
This reverts commit 529d6a4e4a.

Reason for revert: broke developers and CI/Try checkouts.

Bug: 735418

Original change's description:
> gclient: include deps_os entries in dependencies
> 
> Keep deps_os entries in dependencies, just with should_process set to False
> for entries not applicable to target OS list.
> 
> This way gclient flatten has proper access to dependencies e.g. to evaluate
> recursedeps referring to deps_os entries other than active OS.
> 
> Allow but ignore deps_os overriding a value with None, since that does not
> fit the new model. There's no correctness harm in not checking out a repo.
> 
> Allow "overrides" setting given dependency to the same value. This seems
> fairly common, especially for mac/ios and unix/android, even in chromium/src.
> 
> Bug: 570091
> Change-Id: I2037a1ecc5fd2da6b5f73061548b81fc79ba2e72
> Reviewed-on: https://chromium-review.googlesource.com/541280
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>

TBR=phajdan.jr@chromium.org,dpranke@chromium.org

Change-Id: Iaa0c39865908a5b25c15dda54ba61c0e76abcbea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 570091
Reviewed-on: https://chromium-review.googlesource.com/543138
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr f1587bf5a9 gclient: remove unused "use strict" logic
Bug: none
Change-Id: Ia858832e120eec59b12d8e97a61fc01fd70a3837
Reviewed-on: https://chromium-review.googlesource.com/541309
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 529d6a4e4a gclient: include deps_os entries in dependencies
Keep deps_os entries in dependencies, just with should_process set to False
for entries not applicable to target OS list.

This way gclient flatten has proper access to dependencies e.g. to evaluate
recursedeps referring to deps_os entries other than active OS.

Allow but ignore deps_os overriding a value with None, since that does not
fit the new model. There's no correctness harm in not checking out a repo.

Allow "overrides" setting given dependency to the same value. This seems
fairly common, especially for mac/ios and unix/android, even in chromium/src.

Bug: 570091
Change-Id: I2037a1ecc5fd2da6b5f73061548b81fc79ba2e72
Reviewed-on: https://chromium-review.googlesource.com/541280
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 4b73b02b36 gclient: remove unused depth_first_tree
Bug: none
Change-Id: I85724e97c923b4e1651ebf435692018b4629f312
Reviewed-on: https://chromium-review.googlesource.com/541376
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 66945379c6 gclient: throw errors if values from deps_os override deps
With 'flatten' work and in general, we assume deps_os only add to deps,
without attempting to override entries there.

This removes significant edge cases from flatten code,
and ensures DEPS are easier to reason about.

This reverses some past patches and decisions:

a0ad8ad9c9
https://codereview.chromium.org/11368067
https://bugs.chromium.org/p/chromium/issues/detail?id=157979

ed2b4fe59b
https://codereview.chromium.org/23875029
https://bugs.chromium.org/p/chromium/issues/detail?id=248168

These are rather old though (2012-2013), and not expected to be used.

Bug: 570091
Change-Id: I143e95bdaef9d10c937a5f678e6be7e26899ad4d
Reviewed-on: https://chromium-review.googlesource.com/531029
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr f79f0da8c6 gclient: remove unused ast code
Looks like it was added in https://codereview.chromium.org/503563002
and later became dead code.

Bug: none
Change-Id: Ic348e84fcbb0770b8a2dfca592c02d0dbf7e4750
Reviewed-on: https://chromium-review.googlesource.com/535647
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c93643954d gclient: add cwd support for hooks
This makes it possible to run hooks properly
in flattened DEPS.

Bug: 570091
Change-Id: If8175a57ebe8f607bd4ac83d4a26dcc4cc18165c
Reviewed-on: https://chromium-review.googlesource.com/535476
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c10a4d88a4 gclient: extract Hook class
This will be useful e.g. to add cwd support for flatten.

No intended behavior change.

Bug: 570091
Change-Id: I014f97739676d55f6d5b37c10afd9221b1d0978d
Reviewed-on: https://chromium-review.googlesource.com/534193
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr a89d443c2e gclient: remove hookinfo command
It's unused, and not covered by tests.

See https://codereview.chromium.org/9232068/ where it was added ~5 years ago
for an abandoned project to convert to repo.

Bug: 570091
Change-Id: Ica59cd3b28f92e05607203218cbeb92a377ec99a
Reviewed-on: https://chromium-review.googlesource.com/534313
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c9603f5735 gclient flatten: add support for deps_os
Bug: 570091
Change-Id: I3b9fc0560bf744efed9e7f6d9a6595477cffbf8d
Reviewed-on: https://chromium-review.googlesource.com/534393
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 4426eaf228 gclient flatten: fix an issue with custom_deps
TBR=dpranke

Bug: 570091
Change-Id: I1b8cc8156c83c72b2fc599d90059bc7f2674ca17
Reviewed-on: https://chromium-review.googlesource.com/532995
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr cd788e3e14 gclient flatten: use original dependencies, before deps_os kicks in
Bug: 570091
Change-Id: I2b68e8e8a0e28b28b9aab79833578cdf59392b98
Reviewed-on: https://chromium-review.googlesource.com/531185
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 7e50261c2c gclient: freeze vars to prevent accidental modification
This will also be useful for other values (deps_os, hooks_os)
we may want to store and keep constant.

Freeze code copied from luci/recipes-py @ 944125e6d1e8c831d09517bde658a38d8f81db37

Bug: 570091
Change-Id: I3365cf2b267c478316870bbb3fd41e9955aa4ddf
Reviewed-on: https://chromium-review.googlesource.com/531166
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 3c2aa83894 gclient flatten: handle GN settings
Bug: 570091
Change-Id: I5c7cf00722c47a2063a8635822c0bb270a26b524
Reviewed-on: https://chromium-review.googlesource.com/527632
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr 572537307e gclient: implement exporting variables to .gni files
Bug: 570091
Change-Id: Ib2b966b5bc967de11a295b1636c1901faabea55f
Reviewed-on: https://chromium-review.googlesource.com/525540
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr f69860bdbf gclient: evaluate conditions for deps
Bug: 570091
Change-Id: Id95be31767d302c5eb9f7de96d31e32cc4dec1a4
Reviewed-on: https://chromium-review.googlesource.com/524492
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c485d5a5d9 gclient: use new exec logic when validation is enabled
This way we can get e.g. ordered dict as needed for conditions.
Only the new logic does it, not the regular python exec logic.

Bug: 570091
Change-Id: Ia5554e5b018085b3b9bd876b7f28a9f8e54a7984
Reviewed-on: https://chromium-review.googlesource.com/522564
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Dave Tu bbda9719b0 [gclient] Let --revision take repository URLs in addition to local paths.
Pinpoint needs to request builds at specific revisions, e.g. clank@0123 + chromium/src@4567 + v8@89ab. It's not aware of the path of the repositories in the src tree, so it makes more sense to pass in the repository URLs instead.

Bug: https://github.com/catapult-project/catapult/issues/3394

Change-Id: Ib9fb9a7bf5d918c18f37c3b2b36418537512b235
Reviewed-on: https://chromium-review.googlesource.com/520569
Commit-Queue: David Tu <dtu@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 1101645d53 gclient: fix assertion crash when a dep is set to None
This is a follow-up after https://chromium-review.googlesource.com/c/517049/

Bug: 727334, 570091
Change-Id: I49f9ad07f1b79cba547d88e93b2d2064c33e1f4b
Reviewed-on: https://chromium-review.googlesource.com/518125
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr c7ba033259 gclient: allow dict syntax in deps, in preparation for conditions
Bug: 570091
Change-Id: Ib3296a201bdcbd4ec350ee0e98112a89e388fd61
Reviewed-on: https://chromium-review.googlesource.com/517049
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 694773d592 gclient: enable syntax validation by default (reland #1)
Original CL: https://chromium-review.googlesource.com/509451

Please pass --disable-syntax-validation as an escape hatch.

Bug: 570091
Change-Id: Ia9812506347685c31907225837ed50a0510952ee
Reviewed-on: https://chromium-review.googlesource.com/517950
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 7c7b5592d8 gclient: add --disable-syntax-validation escape hatch
This relands the safe portion of outage-causing https://chromium-review.googlesource.com/c/509451/

Landing this simple CL will allow pre-emptively adding escape hatch
to critical places (such as update_scripts) to make relanding validation safer.

Bug: 570091
Change-Id: I4d963bd9b140b7b6bca35d4d5e41768bc1a3d7e0
Reviewed-on: https://chromium-review.googlesource.com/512744
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 7e9303ba19 gclient: remove support for From() (reland #1)
Original CL: https://chromium-review.googlesource.com/509693

This feature appears unused, and removing it will simplify the codebase.

Bug: 661382
Change-Id: I0d83b537b57d0b9ca65c7101d13e0ad6c1642a29
Reviewed-on: https://chromium-review.googlesource.com/512842
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 35b298f077 gclient: remove support for $matching_files in hooks (reland #1)
Original CL: https://chromium-review.googlesource.com/509614

This feature seems to be unused, and removing it will
simplify handling hooks a little bit.

Bug: 661382
Change-Id: I7f02b34fc399c78bef76420df19a93105ab098ac
Reviewed-on: https://chromium-review.googlesource.com/512644
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Andrii Shyshkalov 004923399e Revert "gclient: remove support for $matching_files in hooks"
This reverts commit 3e6d7c1cbc.

Reason for revert: maybe caused outage.

Original change's description:
> gclient: remove support for $matching_files in hooks
> 
> This feature seems to be unused, and removing it will
> simplify handling hooks a little bit.
> 
> Bug: 661382
> Change-Id: I89f28dedb7f59cd475b176cfb1f023094520d6b7
> Reviewed-on: https://chromium-review.googlesource.com/509614
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
> 

TBR=phajdan.jr@chromium.org,dpranke@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: 661382

Change-Id: I47fe26e7381682b5b428a3775bf27a551c57d5e6
Reviewed-on: https://chromium-review.googlesource.com/512344
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Andrii Shyshkalov b4f9d90473 Revert "gclient: remove support for From()"
This reverts commit bf72b593a2.

Reason for revert: maybe caused outage.

Original change's description:
> gclient: remove support for From()
> 
> This feature appears unused, and removing it will simplify the codebase.
> 
> Bug: 661382
> Change-Id: I545befb2c592eea53c54552018ce2d3dda7670f5
> Reviewed-on: https://chromium-review.googlesource.com/509693
> Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> 

TBR=phajdan.jr@chromium.org,dpranke@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: 661382

Change-Id: I4db9554a0a3a64a3a69908560b6da2a9963518f2
Reviewed-on: https://chromium-review.googlesource.com/512343
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Andrii Shyshkalov 58abadba2a Revert "gclient: enable syntax validation by default"
This reverts commit 8db72efd63.

Reason for revert: maybe caused outage.

Original change's description:
> gclient: enable syntax validation by default
> 
> Please pass --disable-syntax-validation as an escape hatch.
> 
> Bug: 570091
> Change-Id: Iceadc0d2fc54ca68e775c3bc7590f4329ddb4951
> Reviewed-on: https://chromium-review.googlesource.com/509451
> Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> 

TBR=phajdan.jr@chromium.org,dpranke@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Bug: 570091

Change-Id: I5b91653839f09a29c4c633fba91b23260ba96761
Reviewed-on: https://chromium-review.googlesource.com/512342
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 8db72efd63 gclient: enable syntax validation by default
Please pass --disable-syntax-validation as an escape hatch.

Bug: 570091
Change-Id: Iceadc0d2fc54ca68e775c3bc7590f4329ddb4951
Reviewed-on: https://chromium-review.googlesource.com/509451
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr bf72b593a2 gclient: remove support for From()
This feature appears unused, and removing it will simplify the codebase.

Bug: 661382
Change-Id: I545befb2c592eea53c54552018ce2d3dda7670f5
Reviewed-on: https://chromium-review.googlesource.com/509693
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Paweł Hajdan, Jr 3e6d7c1cbc gclient: remove support for $matching_files in hooks
This feature seems to be unused, and removing it will
simplify handling hooks a little bit.

Bug: 661382
Change-Id: I89f28dedb7f59cd475b176cfb1f023094520d6b7
Reviewed-on: https://chromium-review.googlesource.com/509614
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 064f6f4a9d gclient flatten: first pass
This is based on https://codereview.chromium.org/2474543002/

Bug: 661382
Change-Id: I191ec16e0ce69a782979ae7d59b108747429ab78
Reviewed-on: https://chromium-review.googlesource.com/505067
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
8 years ago
Scott Graham c482674289 Add support for hooks_os in .gclient
This adds support for 'hooks_os' in .gclient which runs the given hooks
only when the associated os is specifed in target_os.

Bug: 706592
Change-Id: If70e51e0e784f8a8c6e45b33f59605b883a16f6e
Reviewed-on: https://chromium-review.googlesource.com/503534
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr e2f9feecaf Add validate command to gclient
Inspired by https://chromium-review.googlesource.com/c/411515/ .

Bug: 570091
Change-Id: I7bf9653178c06125ae8be1dee021acfc187b2bdc
Reviewed-on: https://chromium-review.googlesource.com/497848
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Aaron Gable 3721ee91fe gclient: Don't die on empty .gclient_entries file
Bug: 707313
Change-Id: Ic3860aa6b9aeaba3ec02ab8dac8dd63429f917cc
Reviewed-on: https://chromium-review.googlesource.com/466688
Reviewed-by: Erik Staab <estaab@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Dirk Pranke da3a29e13e Do not run unconditionally run pre_deps_hooks for dependencies.
Currently if you set `pre_deps_hooks` in your gclient DEPS file,
they will be executed regardless of whether your repo was supposed
to be recursed into (via recursionlimit or recursedeps) or not.

This change fixes that so that we only run the hooks that were
explicitly configured to be run.

R=kjellander@chromium.org, agable@chromium.org
BUG=696495

Change-Id: Ic0ef641903cf3f56d7c2e119d8b0db862258d995
Reviewed-on: https://chromium-review.googlesource.com/447318
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Dirk Pranke b1550ec8b3 Revert "Make an error on wrong recursedeps entry."
This reverts commit 812462026f.

Reason for revert: This doesn't work for deps_os

Original change's description:
> Make an error on wrong recursedeps entry.
> 
> BUG=685433
> 
> Change-Id: I5eb68c4a3bfd1c93edecf33127a459822f5a23ed
> Reviewed-on: https://chromium-review.googlesource.com/440945
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Dirk Pranke <dpranke@chromium.org>
> 

TBR=dpranke@chromium.org,caseq@chromium.org,chromium-reviews@chromium.org,alex-ac@yandex-team.ru
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=685433

Change-Id: If10b57d77dbff36d140f842d375682a20d69db06
Reviewed-on: https://chromium-review.googlesource.com/440491
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Dirk Pranke 2418b58763 Revert "Fix an exception when trying to report a non-referenced recursedeps entry"
This reverts commit e06356501e.

Reason for revert: This doesn't work for deps_os.

Original change's description:
> Fix an exception when trying to report a non-referenced recursedeps entry
> 
> Problem originally introduced in https://chromium-review.googlesource.com/c/440945/
> 
> BUG=685443
> 
> Change-Id: I16313bc7c09b0dd68c6ad118004f9d5cdfec0ddd
> Reviewed-on: https://chromium-review.googlesource.com/440394
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Dirk Pranke <dpranke@chromium.org>
> 

TBR=dpranke@chromium.org,caseq@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=685443

Change-Id: I69b59e91b4019af112bd676c125119eee1edddda
Reviewed-on: https://chromium-review.googlesource.com/440490
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Andrey Kosyakov e06356501e Fix an exception when trying to report a non-referenced recursedeps entry
Problem originally introduced in https://chromium-review.googlesource.com/c/440945/

BUG=685443

Change-Id: I16313bc7c09b0dd68c6ad118004f9d5cdfec0ddd
Reviewed-on: https://chromium-review.googlesource.com/440394
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Aleksandr Derbenev 812462026f Make an error on wrong recursedeps entry.
BUG=685433

Change-Id: I5eb68c4a3bfd1c93edecf33127a459822f5a23ed
Reviewed-on: https://chromium-review.googlesource.com/440945
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
agable debf6c857c Remove gclient cleanup command
R=maruel@chromium.org
BUG=641588

Review-Url: https://codereview.chromium.org/2401483002
8 years ago
Quinten Yearsley b2cc4a94da depot_tools: Replace pylint error numbers with symbolic names.
This affects a bunch of files, but only changes comments,
and shouldn't make any difference to behavior.

The purpose is to slightly improve readability of pylint
disable comments.

Change-Id: Ic6cd0f8de792b31d91c6125f6da2616450b30f11
Reviewed-on: https://chromium-review.googlesource.com/420412
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
8 years ago
agable a98a6cd47d Remove safesync support from gclient[_scm].py
R=dpranke@chromium.org

Review-Url: https://codereview.chromium.org/2395013002
9 years ago
sdefresne 69b1be10a4 Fix typo in --manually_grab_svn_rev deprecated flag.
Chrome on iOS downstream bot still use that flag and they cannot
recover as the flag has been misspelt when resurrected.

TBR=agable@chromium.org
TBR=dnj@chromium.org
BUG=656865

Review-Url: https://codereview.chromium.org/2428893002
9 years ago
agable d437d76b64 Reland "Remove SVN and File support from gclient"
This is a revert of 398a46ee09
Which was itself a revert of b3a24c3fd5

BUG=641588

Review-Url: https://codereview.chromium.org/2404413002
9 years ago
lpique 398a46ee09 Revert of Remove SVN and File support from gclient (patchset #4 id:60001 of https://codereview.chromium.org/2398493004/ )
Reason for revert:
The Chrome buildbots pass "--transitive" still. Removing the option causes them to fail to build.

Example:

https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/x86-alex-tot-chrome-pfq-informational/builds/21555

Original issue's description:
> Remove SVN and File support from gclient
>
> FileImpl was only usable with SVN.
>
> R=maruel@chromium.org
> BUG=641588
>
> Committed: b3a24c3fd5

TBR=maruel@chromium.org,agable@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=641588

Review-Url: https://codereview.chromium.org/2405173003
9 years ago
agable b3a24c3fd5 Remove SVN and File support from gclient
FileImpl was only usable with SVN.

R=maruel@chromium.org
BUG=641588

Review-Url: https://codereview.chromium.org/2398493004
9 years ago
agable dce6ddcd21 Propagate use_relative_paths into recursedeps
Currently, if a DEPS file sets use_relative_paths, but *also* sets
recursedeps, then the recursed-upon DEPS files still get checked
out relative to the .gclient root. This change makes it so that
recursed-upon DEPS files check their dependencies out relative to
where their parent wants them to be, if that parent sets
use_relative_paths=True.

R=maruel@chromium.org

Review-Url: https://codereview.chromium.org/2324513003
9 years ago
qyearsley 12fa6ff69b Run auto-spell-checker (codespell) on files in depot_tools.
This should only change spelling in:
 - messages that are printed
 - comments
 - docstrings

Review-Url: https://codereview.chromium.org/2277513002
9 years ago
agable c903d73f3c Give 'gclient revert' a --merge option to match sync
This is a workaround for the fact that 'gclient revert' calls
'gclient update' with the same `options` object, despite not
actually having the same set of command line options.

R=iannucci@chromium.org, kevcheng@chromium.org
BUG=631220

Review-Url: https://codereview.chromium.org/2184493002
9 years ago
smut ae7ea3167e Revert "Remove all safesync_url functionality from gclient"
This reverts commit 99a7f80578.
This reverts commit 2697cd19a7.
This reverts commit 8c51b6f148.
This reverts commit d4aedc811b.

Reason for revert:
Breaks iOS release branch builds.

BUG=623762
TBR=agable,maruel

Review URL: https://codereview.chromium.org/2162583004 .
9 years ago
agable d4aedc811b Switch gclient config to default to unmanaged mode.
BUG=339055
R=hinoka@chromium.org

Review-Url: https://codereview.chromium.org/2099153003
9 years ago
agable 8c51b6f148 Slight fix for gclient readability
R=hinoka@chromium.org

Review-Url: https://codereview.chromium.org/2103663004
9 years ago
agable 2697cd19a7 Restore --head/-H to gclient
R=dmazzoni@chromium.org, maruel@chromium.org
BUG=109184

Review-Url: https://codereview.chromium.org/2105493002
9 years ago
agable 99a7f80578 Remove all safesync_url functionality from gclient
R=maruel@chromium.org
BUG=109184

Review-Url: https://codereview.chromium.org/2087313002
9 years ago
hinoka 885e5b1ee2 Add resource locking in gclient
There are entries in the DEPS file where two folders uses the same
git URL (ie. freetype2).  This doesn't work well with git caches because
each task will run on it's own and might try to clobber on top of each other.

This adds another field in a WorkItem which is a list of resources.  When the
work queue is flushed, it has to make sure that none of a newly added workitem
has any resource conflicts.

BUG=618124

Review-Url: https://codereview.chromium.org/2049583003
9 years ago
levarum@chromium.org 27a6f9a5cb Improve diagnostic message for wrong gclient config
BUG=591814
TEST=gclient sync prints the correct report locally
when config is wrong.

Review-Url: https://codereview.chromium.org/2018803002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300671 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org afa11acce5 Reland: Add ability to override DEPS file in recursedeps
This will allow ANGLE to have a recursible deps-file in their repo instead of
relying on chromium's DEPS file to specify an accurate dependency for itself.

Previously: https://chromiumcodereview.appspot.com/1919103003/

R=agable@chromium.org, dpranke@chromium.org, jmadill@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1948853002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300446 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
martiniss@chromium.org 242de27df2 Revert of Add ability to override DEPS file in recursedeps. (patchset #1 id:1 of https://codereview.chromium.org/1919103003/ )
Reason for revert:
Looks like this broke some bots; see https://build.chromium.org/p/chromium.infra.cron/builders/recipe-autoroller-public/builds/2960

https://build.chromium.org/p/chromium.infra.cron/builders/gsubtreed-luci-py/builds/52912

Original issue's description:
> Add ability to override DEPS file in recursedeps.
> 
> This will allow ANGLE to have a recursible deps-file in their repo instead of
> relying on chromium's DEPS file to specify an accurate dependency for itself.
> 
> R=agable@chromium.org, jmadill@chromium.org
> BUG=
> 
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=300293

TBR=agable@chromium.org,dpranke@chromium.org,jmadill@chromium.org,iannucci@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/1932063002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300304 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org c38fd01b2f Add ability to override DEPS file in recursedeps.
This will allow ANGLE to have a recursible deps-file in their repo instead of
relying on chromium's DEPS file to specify an accurate dependency for itself.

R=agable@chromium.org, jmadill@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1919103003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300293 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org bf525dc9be Add --break_repo_locks to gclient revert.
CMDupdate and CMDsync have different option parsers, which means they pass 
different options objects to the same underlying code!

R=agable@chromium.org, dnj@chromium.org, smut@chromium.org
BUG=601564

Review URL: https://codereview.chromium.org/1869593004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299777 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org 30a07987c2 Revert of Revert "Add (another) argument to break git locks in gclient." (patchset #1 id:1 of https://codereview.chromium.org/1865403003/ )
Reason for revert:
This revert breaks /everything/

Original issue's description:
> Revert "Add (another) argument to break git locks in gclient."
> 
> This reverts commit 51797b1d8f.
> 
> BUG=601564
> TBR=iannucci,dpranke,estaab,pgervais
> 
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=299771

TBR=dpranke@google.com,estaab@chromium.org,pgervais@chromium.org,smut@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=601564

Review URL: https://codereview.chromium.org/1867843003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299773 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
smut@google.com 66f23f3eb1 Revert "Add (another) argument to break git locks in gclient."
This reverts commit 51797b1d8f.

BUG=601564
TBR=iannucci,dpranke,estaab,pgervais

Review URL: https://codereview.chromium.org/1865403003 .

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299771 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org 51797b1d8f Add (another) argument to break git locks in gclient.
This will clean up index.lock and refs/heads/master.lock-style locks when
invoked as part of the update_scripts step on the bots.

R=dpranke@chromium.org, estaab@chromium.org, pgervais@chromium.org
BUG=421769

Review URL: https://codereview.chromium.org/1862943002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299737 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
iannucci@chromium.org 596cd5c95d Fix coloring madness in depot_tools.
'setup_color' now contains logic to correctly detect:
  * cmd
  * cmd pipe
  * msys bash
  * msys pipe
  * cmd running inside msys bash (git-command)
  * cmd pipe running inside msys bash (git-command > outfile)

R=brucedawson@chromium.org, dnj@chromium.org
BUG=600049

Review URL: https://codereview.chromium.org/1851283002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299682 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago