mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 1 | git-drover(1) |
| 2 | ============= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
| 6 | git-drover - |
| 7 | include::_git-drover_desc.helper.txt[] |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
| 11 | [verse] |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 12 | 'git drover' --branch <branch> |
| 13 | (--cherry-pick <change> | --continue [path_to_workdir] | |
| 14 | --abort [path_to_workdir]) |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 15 | [--parent_checkout <path-to-existing-checkout>] |
| 16 | [--verbose] [--dry-run] |
mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 17 | |
| 18 | DESCRIPTION |
| 19 | ----------- |
| 20 | |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 21 | `git drover` applies a commit to a release branch. It creates a new workdir from |
| 22 | an existing checkout to avoid downloading a new checkout without affecting the |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 23 | existing checkout. |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 24 | |
| 25 | `git drover` does not support reverts. See the EXAMPLE section for the |
| 26 | equivalent sequence of commands to run. |
| 27 | |
| 28 | OPTIONS |
| 29 | ------- |
| 30 | --branch <branch>:: |
| 31 | The branch to cherry-pick the commit to. |
| 32 | |
| 33 | --cherry-pick <commit>:: |
| 34 | The commit to cherry-pick. |
| 35 | |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 36 | --continue [path_to_workdir]:: |
| 37 | Continue a cherry-pick that required manual resolution. The path to the drover |
| 38 | workdir is optional. If unspecified, the current directory is used. |
| 39 | |
| 40 | --abort [path_to_workdir]:: |
| 41 | Abort a cherry-pick that required manual resolution and clean up its workdir. |
| 42 | The path to the drover workdir is optional. If unspecified, the current |
| 43 | directory is used. |
| 44 | |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 45 | --parent_checkout:: |
| 46 | The path to the chromium checkout to use as the source for a creating |
| 47 | git-new-workdir workdir to use for cherry-picking. If unspecified, the current |
| 48 | directory is used. |
| 49 | |
| 50 | -v:: |
| 51 | --verbose:: |
| 52 | Enable verbose logging. |
| 53 | |
| 54 | --dry-run:: |
| 55 | Skip landing the cherry-pick. Just ensure that the commit can be cherry-picked |
| 56 | into the branch. |
mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 57 | |
| 58 | EXAMPLE |
| 59 | ------- |
mmoss@chromium.org | 4426785 | 2014-09-06 00:06:24 +0000 | [diff] [blame] | 60 | |
| 61 | PREREQUISITES |
| 62 | ~~~~~~~~~~~~~ |
| 63 | Before working with branches, you must |
| 64 | ifdef::backend-xhtml11[] |
| 65 | `gclient sync --with_branch_heads` |
| 66 | endif::backend-xhtml11[] |
| 67 | ifdef::backend-docbook[] |
| 68 | 'gclient sync --with_branch_heads' |
| 69 | endif::backend-docbook[] |
| 70 | at least once to fetch the branches. |
| 71 | |
| 72 | Merge Example |
| 73 | ^^^^^^^^^^^^^ |
mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 74 | demo:1[] |
| 75 | |
sammc@chromium.org | 8990189 | 2015-11-03 00:57:48 +0000 | [diff] [blame] | 76 | Merge with Conflicts Example |
| 77 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 78 | demo:4[] |
| 79 | |
mmoss@chromium.org | 4426785 | 2014-09-06 00:06:24 +0000 | [diff] [blame] | 80 | Revert Example |
| 81 | ^^^^^^^^^^^^^^ |
| 82 | demo:2[] |
| 83 | |
Aaron Gable | 9756104 | 2017-06-21 09:38:37 -0700 | [diff] [blame] | 84 | If your cherrypick onto a release branch gets reverted, do not create a new |
| 85 | cherrypick from master onto that release branch. Instead, use the "Reland" |
| 86 | button on the original cherrypick CL. |
| 87 | |
sammc@chromium.org | 900a33f | 2015-09-29 06:57:09 +0000 | [diff] [blame] | 88 | Manual Merge Example |
| 89 | ^^^^^^^^^^^^^^^^^^^^ |
| 90 | demo:3[] |
| 91 | |
Aaron Gable | 9756104 | 2017-06-21 09:38:37 -0700 | [diff] [blame] | 92 | If `git cl upload` errors out, the branch you're uploading to probably has a CL |
| 93 | with the same Change-Id. Instead of cherry-picking manually, use the Reland |
| 94 | button in the Gerrit UI to create a new CL, and patch that CL into your client. |
| 95 | |
mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 96 | SEE ALSO |
| 97 | -------- |
mmoss@chromium.org | 6f9c7cf | 2014-09-09 21:06:30 +0000 | [diff] [blame] | 98 | linkgit:git-cherry-pick[1], linkgit:git-revert[1] |
mmoss@chromium.org | 62e41c3 | 2014-08-20 23:23:28 +0000 | [diff] [blame] | 99 | |
| 100 | include::_footer.txt[] |
| 101 | |
| 102 | // vim: ft=asciidoc: |