git drover repeatedly failed for cherrypick. |
|||
Issue description
I've been trying to cherrypick an issue into M58 beta. git drover did not work, repeatedly failing at the git cl land step. Manually landing the change eventually worked. I updated my .gitcookies early on in the process and it had no effect.
Two possible theories: before doing git drover, I did gclient sync --with_branch_heads. Before doing the manual pull, I did git fetch and then the gclient sync --with_branch_heads. Also, in order to commit manually, I had to add NOTRY=true and NOPRESUBMIT=true to the cl description.
Below is a typical transcript from one of my git drover attempts:
mattcary@mattcary:/clank/code/src$ gclient sync --with_branch_heads
.... output removed ...
mattcary@mattcary:/clank/code/src$ git drover -v --branch 3029 --cherry-pick 6430db2fde60
DEBUG:root:Running git --help (cwd '/clank/code/src')
DEBUG:root:Running git status (cwd '/clank/code/src')
DEBUG:root:Running git fetch origin (cwd '/clank/code/src')
DEBUG:root:Running git rev-parse refs/remotes/branch-heads/3029^{commit} (cwd '/clank/code/src')
DEBUG:root:Running git rev-parse 6430db2fde60^{commit} (cwd '/clank/code/src')
DEBUG:root:Running git show -s 6430db2fde60 (cwd '/clank/code/src')
Going to cherry-pick
"""
6430db2fde60 Mon Mar 20 18:16:08 2017 +0000 Prerender: omnibox and instant field trial parameters."""
to 3029. Continue (y/n)? y
DEBUG:root:Running git rev-parse --git-dir (cwd '/clank/code/src')
DEBUG:root:Creating checkout in /tmp/drover_3029_XGGkJE
DEBUG:root:Running git config core.sparsecheckout true (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git checkout -b drover_3029_XGGkJE refs/remotes/branch-heads/3029 (cwd '/tmp/drover_3029_XGGkJE')
Switched to a new branch 'drover_3029_XGGkJE'
DEBUG:root:Running git cherry-pick -x 6430db2fde60 (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git reset --hard (cwd '/tmp/drover_3029_XGGkJE')
DEBUG:root:Running git cl upload (cwd '/tmp/drover_3029_XGGkJE')
Using 50% similarity for rename/copy detection. Override with --similarity.
Running presubmit upload checks ...
Presubmit checks passed.
chrome/browser/prerender/prerender_browsertest.cc | 10 --
chrome/browser/prerender/prerender_field_trial.cc | 79 ++++++----
chrome/browser/prerender/prerender_field_trial.h | 4 +
chrome/browser/prerender/prerender_manager.cc | 40 ++++-
chrome/browser/prerender/prerender_manager.h | 8 +-
chrome/browser/prerender/prerender_manager_factory.cc | 2 +-
chrome/browser/prerender/prerender_test_utils.h | 22 +++
chrome/browser/prerender/prerender_unittest.cc | 250 +++++++++++++++++++++++--------
chrome/browser/ui/login/login_handler_browsertest.cc | 4 +-
9 files changed, 309 insertions(+), 110 deletions(-)
Waiting for Emacs...
Upload server: https://codereview.chromium.org (change with -s/--server)
Issue created. URL: https://codereview.chromium.org/2765173003 (patchset: 1)
Uploading base file for chrome/browser/prerender/prerender_test_utils.h
Uploading base file for chrome/browser/ui/login/login_handler_browsertest.cc
Uploading base file for chrome/browser/prerender/prerender_unittest.cc
Uploading base file for chrome/browser/prerender/prerender_browsertest.cc
Uploading base file for chrome/browser/prerender/prerender_field_trial.cc
Uploading base file for chrome/browser/prerender/prerender_manager.h
Uploading base file for chrome/browser/prerender/prerender_manager.cc
Uploading base file for chrome/browser/prerender/prerender_field_trial.h
Uploading base file for chrome/browser/prerender/prerender_manager_factory.cc
About to land on 3029. Continue (y/n)? y
DEBUG:root:Running git cl land --bypass-hooks (cwd '/tmp/drover_3029_XGGkJE')
Using 50% similarity for rename/copy detection. Override with --similarity.
Description:
Prerender: omnibox and instant field trial parameters.
Allow omnibox and instant prerendering origins to be controlled separately from
the rest of the NoStatePrefetch experiment.
BUG=565501,678332
TBR=vabr@chromium.org
Review-Url: https://codereview.chromium.org/2754003006
Cr-Commit-Position: refs/heads/master@{#458124}
(cherry picked from commit 6430db2fde6019843ea53e3540757857934b804a)
Review-Url: https://codereview.chromium.org/2765173003 .
chrome/browser/prerender/prerender_browsertest.cc | 10 --
chrome/browser/prerender/prerender_field_trial.cc | 79 ++++++----
chrome/browser/prerender/prerender_field_trial.h | 4 +
chrome/browser/prerender/prerender_manager.cc | 40 ++++-
chrome/browser/prerender/prerender_manager.h | 8 +-
chrome/browser/prerender/prerender_manager_factory.cc | 2 +-
chrome/browser/prerender/prerender_test_utils.h | 22 +++
chrome/browser/prerender/prerender_unittest.cc | 250 +++++++++++++++++++++++--------
chrome/browser/ui/login/login_handler_browsertest.cc | 4 +-
9 files changed, 309 insertions(+), 110 deletions(-)
Counting objects: 16, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (16/16), 11.84 KiB | 0 bytes/s, done.
Total 16 (delta 14), reused 7 (delta 7)
remote: Resolving deltas: 100% (14/14)
remote: Processing changes: refs: 1, done
error: failed to push some refs to 'https://chromium.googlesource.com/chromium/src.git'
Failed to push. If this persists, please file a bug.
DEBUG:root:Deleting /tmp/drover_3029_XGGkJE
DEBUG:root:Running git branch -D drover_3029_XGGkJE (cwd '/clank/code/src')
Error: Command 'cl land --bypass-hooks' failed: Command '['git', 'cl', 'land', '--bypass-hooks']' returned non-zero exit status 1
,
Mar 22 2017
It may be the problem that git cl doesn't retry+rebase anymore. There is a workaround that doesn't use drover: 1. set the upstream to refs/branch-heads/[branch_number] 3. cherry-pick your commit. 4. cl upload and pull/rebase if it failed //Adding the folks in the ""git cl land" errors" discussion https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/infra-dev/L9ESImAjpFU/SX5y5Lr3CgAJ
,
Mar 22 2017
Thanks for report! Your and dimu@ analysis is correct == git cl doesn't do rebase on the fly any more, and that's why you had this problem. It's surprising that you have this on the branch: it means that somebody landed a CL between your gclient sync --with branch heads AND git cl land. This is frequent enough that I'll raise priority of adding rebasing back to git cl land, particularly since we are still not on Gerrit :(
,
Mar 22 2017
General surprise was the consensus around my office as well; it was not expected that CLs would land multiple times, I probably tried drover 4-5 times with a gclient sync --with_branch_heads before bailing out to do it manually. So I don't know if commit races are the real issue. Anyway, good luck, and I'll just hope I don't have any more cherrypicks to do :P |
|||
►
Sign in to add a comment |
|||
Comment 1 by amineer@chromium.org
, Mar 22 2017