blob: fab3cc2c6095ca1698f388d14f7aec744650aef1 [file] [log] [blame]
mmoss@chromium.org62e41c32014-08-20 23:23:28 +00001git-drover(1)
2=============
3
4NAME
5----
6git-drover -
7include::_git-drover_desc.helper.txt[]
8
9SYNOPSIS
10--------
11[verse]
sammc@chromium.org89901892015-11-03 00:57:48 +000012'git drover' --branch <branch>
13 (--cherry-pick <change> | --continue [path_to_workdir] |
14 --abort [path_to_workdir])
sammc@chromium.org900a33f2015-09-29 06:57:09 +000015 [--parent_checkout <path-to-existing-checkout>]
16 [--verbose] [--dry-run]
mmoss@chromium.org62e41c32014-08-20 23:23:28 +000017
18DESCRIPTION
19-----------
20
sammc@chromium.org900a33f2015-09-29 06:57:09 +000021`git drover` applies a commit to a release branch. It creates a new workdir from
22an existing checkout to avoid downloading a new checkout without affecting the
sammc@chromium.org89901892015-11-03 00:57:48 +000023existing checkout.
sammc@chromium.org900a33f2015-09-29 06:57:09 +000024
25`git drover` does not support reverts. See the EXAMPLE section for the
26equivalent sequence of commands to run.
27
28OPTIONS
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.org89901892015-11-03 00:57:48 +000036--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.org900a33f2015-09-29 06:57:09 +000045--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.org62e41c32014-08-20 23:23:28 +000057
58EXAMPLE
59-------
mmoss@chromium.org44267852014-09-06 00:06:24 +000060
61PREREQUISITES
62~~~~~~~~~~~~~
63Before working with branches, you must
64ifdef::backend-xhtml11[]
65`gclient sync --with_branch_heads`
66endif::backend-xhtml11[]
67ifdef::backend-docbook[]
68'gclient sync --with_branch_heads'
69endif::backend-docbook[]
70at least once to fetch the branches.
71
72Merge Example
73^^^^^^^^^^^^^
mmoss@chromium.org62e41c32014-08-20 23:23:28 +000074demo:1[]
75
sammc@chromium.org89901892015-11-03 00:57:48 +000076Merge with Conflicts Example
77^^^^^^^^^^^^^^^^^^^^^^^^^^^^
78demo:4[]
79
mmoss@chromium.org44267852014-09-06 00:06:24 +000080Revert Example
81^^^^^^^^^^^^^^
82demo:2[]
83
Aaron Gable97561042017-06-21 09:38:37 -070084If your cherrypick onto a release branch gets reverted, do not create a new
85cherrypick from master onto that release branch. Instead, use the "Reland"
86button on the original cherrypick CL.
87
sammc@chromium.org900a33f2015-09-29 06:57:09 +000088Manual Merge Example
89^^^^^^^^^^^^^^^^^^^^
90demo:3[]
91
Aaron Gable97561042017-06-21 09:38:37 -070092If `git cl upload` errors out, the branch you're uploading to probably has a CL
93with the same Change-Id. Instead of cherry-picking manually, use the Reland
94button in the Gerrit UI to create a new CL, and patch that CL into your client.
95
mmoss@chromium.org62e41c32014-08-20 23:23:28 +000096SEE ALSO
97--------
mmoss@chromium.org6f9c7cf2014-09-09 21:06:30 +000098linkgit:git-cherry-pick[1], linkgit:git-revert[1]
mmoss@chromium.org62e41c32014-08-20 23:23:28 +000099
100include::_footer.txt[]
101
102// vim: ft=asciidoc: