'\" t .\" Title: git-drover .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 09/09/2014 .\" Manual: Chromium depot_tools Manual .\" Source: depot_tools 6e7202b .\" Language: English .\" .TH "GIT\-DROVER" "1" "09/09/2014" "depot_tools 6e7202b" "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 a commit (from some\&.committer) that we want to \*(Aqdrover\*(Aq\&. \fB$ git log \-n 1 \-\-pretty=fuller\fR commit 0421d3583f73220c8f88b1a96898fcd81222fe73 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 0421d3583f73220c8f88b1a96898fcd81222fe73\fR [drover_9999 5c0a17d] 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\&.committer and committed it to # the branch by the person who drovered it (i\&.e\&. you)\&. \fB$ git log \-n 1 \-\-pretty=fuller\fR commit 5c0a17dd382cd098182ac9f486ccd6b86c28d96e Author: some\&.committer AuthorDate: Thu Apr 10 08:54:46 2014 +0000 Commit: you CommitDate: Thu Apr 10 09:11:36 2014 +0000 This change needs to go to branch 9999 (cherry picked from commit 0421d3583f73220c8f88b1a96898fcd81222fe73) # 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 28bb44fa7f9d5e19b73a670ae923d3a96dec250a Author: some\&.committer Date: Thu Apr 10 08:54:46 2014 +0000 This change is horribly broken\&. # Now do the revert\&. \fB$ git revert 28bb44fa7f9d5e19b73a670ae923d3a96dec250a\fR # That reverted the change and committed the revert\&. \fB$ git log \-n 1\fR commit 4618467de1407aa159624015c8c8461ec35fbaf1 Author: you Date: Thu Apr 10 09:11:36 2014 +0000 Revert "This change is horribly broken\&." This reverts commit 28bb44fa7f9d5e19b73a670ae923d3a96dec250a\&. # 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