commit | f9afc77f283e5e9f7973ac0619a3cc5c18973a44 | [log] [tgz] |
---|---|---|
author | Edward Lemur <ehmaldonado@chromium.org> | Wed Jul 18 22:40:32 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Jul 18 22:40:32 2018 |
tree | 327684a970302d948fa18163f38ba91f5a248b3a | |
parent | 302bb847d356a011f685542fc469f4c3e58b25fc [diff] |
Reland "gclient_scm: Use cherry-picking instead of rebasing." The failures were caused by: 1 - When one change (call it #2) has been uploaded on top of another (#1), and (#1) has already landed, git cherry-pick complains that the range '<merge-base>..<change #2>' contains empty commits, since the contents of (#1) are already present in the tree. 2 - We did not abort the cherry-picking when 'git cherry-pick' failed, so a failure made all further CLs in that bot fail. This CL fixes it and prevents further regressions. Original change's description: > gclient_scm: Use cherry-picking instead of rebasing. > > Currently gclient might include extra commits when applying patches. > For example, in this case we checkout |patch| and rebase it on top of |base|, > thus including an |extra commit| that we shouldn't. > > o master > | > . o patch > |/ > o extra commit > | > o base (what gclient synced src at) > > This change uses the merge-base between |patch| and |master| to cherry-pick only > the changes belonging to the patch. > > Bug: 850812 > Change-Id: I138192f96bc62b1bb19b0e1ad952c8f8c67631c4 > Reviewed-on: https://chromium-review.googlesource.com/1137052 > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> > Reviewed-by: Aaron Gable <agable@chromium.org> Bug: 850812 Change-Id: I83f38d0a258df3f5cd89e277f0d648badff29a22 Reviewed-on: https://chromium-review.googlesource.com/1139554 Reviewed-by: Aaron Gable <agable@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Tools for working with Chromium development. It requires python 2.7.
The most important tools are:
fetch
: A gclient
wrapper to checkout a project. Use fetch --help
for more details.gclient
: A meta-checkout tool. Think repo or git submodules, except that it support OS-specific rules, e.g. do not checkout Windows only dependencies when checking out for Android. Use gclient help
for more details and README.gclient.md.git cl
: A code review tool to interact with Rietveld or Gerrit. Use git cl help
for more details and README.git-cl.md.roll-dep
: A gclient dependency management tool to submit a dep roll, updating a dependency to a newer revision.There are a lot of git utilities included.
depot_tools
updates itself automatically when running gclient
tool. To disable auto update, set the environment variable DEPOT_TOOLS_UPDATE=0
.
To update package manually, run update_depot_tools.bat
on Windows, or ./update_depot_tools
on Linux or Mac.
On Windows only, running gclient
will install git
and python
.
To contribute change for review:
git new-branch <somename> # Hack git add . git commit -a -m "Fixes goat teleporting" # find reviewers git cl owners git log -- <yourfiles> # Request a review. git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail # Edit change description if needed. git cl desc # If change is approved, flag it to be committed. git cl set-commit # If change needs more work. git rebase-update ... git cl upload -t "Fixes goat teleporter destination to be Australia"
See also open bugs, open reviews, forum or report problems.
To update cpplint.py, please submit the change upstream first at https://github.com/google/styleguide/tree/gh-pages/cpplint then copy it down.