'\" t .\" Title: git-drover .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 09/05/2014 .\" Manual: Chromium depot_tools Manual .\" Source: depot_tools 2171f9c .\" Language: English .\" .TH "GIT\-DROVER" "1" "09/05/2014" "depot_tools 2171f9c" "Chromium depot_tools Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" git-drover \- Apply a commit from the trunk to a release branch, or from one release branch to another\&. .SH "SYNOPSIS" .sp .nf \fIgit drover\fR .fi .sp .SH "DESCRIPTION" .sp git drover is NOT IMPLEMENTED yet\&. See the EXAMPLE section for the equivalent sequence of commands to run\&. .SH "EXAMPLE" .SS "PREREQUISITES" .sp Before working with branches, you must \fIgclient sync \-\-with_branch_heads\fR at least once to fetch the branches\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBMerge Example\fR .RS 4 .sp .sp .if n \{\ .RS 4 .\} .nf # Make sure we have the most up\-to\-date branch sources\&. \fB$ git fetch\fR # Here\*(Aqs the commit we want to \*(Aqdrover\*(Aq\&. \fB$ git log \-n 1 \-\-pretty=fuller\fR commit 14293306d7969cff815969e2502f47794a63fbc5 Author: some\&.committer AuthorDate: Thu Apr 10 08:54:46 2014 +0000 Commit: some\&.committer CommitDate: Thu Apr 10 08:54:46 2014 +0000 This change needs to go to branch 9999 # Checkout the branch we want to \*(Aqdrover\*(Aq to\&. \fB$ git checkout \-b drover_9999 branch\-heads/9999\fR Branch drover_9999 set up to track remote ref refs/branch\-heads/9999\&. # Now do the \*(Aqdrover\*(Aq\&. # IMPORTANT!!! Do Not leave off the \*(Aq\-x\*(Aq flag \fB$ git cherry\-pick \-x 14293306d7969cff815969e2502f47794a63fbc5\fR [drover_9999 3200a8c] This change needs to go to branch 9999 Author: some\&.committer Date: Thu Apr 10 08:54:46 2014 +0000 1 file changed, 1 insertion(+) create mode 100644 modified_file # That took the code authored by some\&.commiter and commited it to the # branch by branch\&.maintainer (us)\&. \fB$ git log \-n 1 \-\-pretty=fuller\fR commit 3200a8cb2072a7c84aaba52baaecbf5e4d17ad00 Author: some\&.committer AuthorDate: Thu Apr 10 08:54:46 2014 +0000 Commit: branch\&.maintainer CommitDate: Thu Apr 10 09:11:36 2014 +0000 This change needs to go to branch 9999 (cherry picked from commit 14293306d7969cff815969e2502f47794a63fbc5) # Looks good\&. Ship it! \fB$ git cl upload\fR # Wait for LGTM or TBR it\&. \fB$ git cl land\fR # Or skip the LGTM/TBR and just \*(Aqgit cl land \-\-bypass\-hooks\*(Aq .fi .if n \{\ .RE .\} .sp .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBRevert Example\fR .RS 4 .sp .sp .if n \{\ .RS 4 .\} .nf # Make sure we have the most up\-to\-date branch sources\&. \fB$ git fetch\fR # Checkout the branch with the change we want to revert\&. \fB$ git checkout \-b drover_9999 branch\-heads/9999\fR Branch drover_9999 set up to track remote ref refs/branch\-heads/9999\&. # Here\*(Aqs the commit we want to revert\&. \fB$ git log \-n 1\fR commit 4803efead17077ecd40440caef2e78d1c66098cf Author: some\&.committer Date: Thu Apr 10 08:54:46 2014 +0000 This change is horribly broken\&. # Now do the revert\&. \fB$ git revert 4803efead17077ecd40440caef2e78d1c66098cf\fR # That reverted the change and committed the revert\&. \fB$ git log \-n 1\fR commit 52350f2809ce71352326f1518feae57ac5152f18 Author: branch\&.maintainer Date: Thu Apr 10 09:11:36 2014 +0000 Revert "This change is horribly broken\&." This reverts commit 4803efead17077ecd40440caef2e78d1c66098cf\&. # As with old drover, reverts are generally OK to commit without LGTM\&. \fB$ git cl upload \-r some\&.committer@chromium\&.org \-\-send\-mail\fR \fB$ git cl land \-\-bypass\-hooks\fR .fi .if n \{\ .RE .\} .sp .RE .SH "SEE ALSO" .sp \fBgit-cherry-pick\fR(1) \fBgit-revert\fR(1) .SH "CHROMIUM DEPOT_TOOLS" .sp Part of the chromium \fBdepot_tools\fR(7) suite\&. These tools are meant to assist with the development of chromium and related projects\&. Download the tools from \m[blue]\fBhere\fR\m[]\&\s-2\u[1]\d\s+2\&. .SH "NOTES" .IP " 1." 4 here .RS 4 \%https://chromium.googlesource.com/chromium/tools/depot_tools.git .RE