OLD | NEW |
| (Empty) |
1 '\" t | |
2 .\" Title: depot_tools_tutorial | |
3 .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] | |
4 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> | |
5 .\" Date: 04/14/2014 | |
6 .\" Manual: Chromium depot_tools Manual | |
7 .\" Source: depot_tools e722300 | |
8 .\" Language: English | |
9 .\" | |
10 .TH "DEPOT_TOOLS_TUTORIAL" "7" "04/14/2014" "depot_tools e722300" "Chromium depo
t_tools Manual" | |
11 .\" ----------------------------------------------------------------- | |
12 .\" * Define some portability stuff | |
13 .\" ----------------------------------------------------------------- | |
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
15 .\" http://bugs.debian.org/507673 | |
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html | |
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
18 .ie \n(.g .ds Aq \(aq | |
19 .el .ds Aq ' | |
20 .\" ----------------------------------------------------------------- | |
21 .\" * set default formatting | |
22 .\" ----------------------------------------------------------------- | |
23 .\" disable hyphenation | |
24 .nh | |
25 .\" disable justification (adjust text to left margin only) | |
26 .ad l | |
27 .\" ----------------------------------------------------------------- | |
28 .\" * MAIN CONTENT STARTS HERE * | |
29 .\" ----------------------------------------------------------------- | |
30 .SH "NAME" | |
31 depot_tools_tutorial \- A tutorial introduction to the Chromium depot_tools git
extensions\&. | |
32 .SH "DESCRIPTION" | |
33 .sp | |
34 The Chromium \fBdepot_tools\fR(7) suite contains many git workflow\-enhancing to
ols which are designed to work together to enable anyone to wrangle the Chromium
codebase expertly\&. This tutorial explains how to do development on Chromium u
sing these tools\&. This will cover: | |
35 .sp | |
36 .RS 4 | |
37 .ie n \{\ | |
38 \h'-04'\(bu\h'+03'\c | |
39 .\} | |
40 .el \{\ | |
41 .sp -1 | |
42 .IP \(bu 2.3 | |
43 .\} | |
44 Setting up | |
45 .RE | |
46 .sp | |
47 .RS 4 | |
48 .ie n \{\ | |
49 \h'-04'\(bu\h'+03'\c | |
50 .\} | |
51 .el \{\ | |
52 .sp -1 | |
53 .IP \(bu 2.3 | |
54 .\} | |
55 Getting the code | |
56 .RE | |
57 .sp | |
58 .RS 4 | |
59 .ie n \{\ | |
60 \h'-04'\(bu\h'+03'\c | |
61 .\} | |
62 .el \{\ | |
63 .sp -1 | |
64 .IP \(bu 2.3 | |
65 .\} | |
66 TL;DR | |
67 .RE | |
68 .sp | |
69 .RS 4 | |
70 .ie n \{\ | |
71 \h'-04'\(bu\h'+03'\c | |
72 .\} | |
73 .el \{\ | |
74 .sp -1 | |
75 .IP \(bu 2.3 | |
76 .\} | |
77 Creating / Uploading a CL | |
78 .RE | |
79 .sp | |
80 .RS 4 | |
81 .ie n \{\ | |
82 \h'-04'\(bu\h'+03'\c | |
83 .\} | |
84 .el \{\ | |
85 .sp -1 | |
86 .IP \(bu 2.3 | |
87 .\} | |
88 Updating the code | |
89 .RE | |
90 .sp | |
91 .RS 4 | |
92 .ie n \{\ | |
93 \h'-04'\(bu\h'+03'\c | |
94 .\} | |
95 .el \{\ | |
96 .sp -1 | |
97 .IP \(bu 2.3 | |
98 .\} | |
99 Managing multiple CLs | |
100 .RE | |
101 .sp | |
102 .RS 4 | |
103 .ie n \{\ | |
104 \h'-04'\(bu\h'+03'\c | |
105 .\} | |
106 .el \{\ | |
107 .sp -1 | |
108 .IP \(bu 2.3 | |
109 .\} | |
110 Managing dependent CLs | |
111 .RE | |
112 .sp | |
113 .RS 4 | |
114 .ie n \{\ | |
115 \h'-04'\(bu\h'+03'\c | |
116 .\} | |
117 .el \{\ | |
118 .sp -1 | |
119 .IP \(bu 2.3 | |
120 .\} | |
121 Example Walkthrough | |
122 .RE | |
123 .sp | |
124 Please refer to the manpages (or \-\-help output) for details about any of the c
ommands mentioned in this tutorial\&. | |
125 .if n \{\ | |
126 .sp | |
127 .\} | |
128 .RS 4 | |
129 .it 1 an-trap | |
130 .nr an-no-space-flag 1 | |
131 .nr an-break-flag 1 | |
132 .br | |
133 .ps +1 | |
134 \fBNote\fR | |
135 .ps -1 | |
136 .br | |
137 .sp | |
138 If your platform does not support manpages (or you prefer something a bit more e
xpressive than plain text) you can find all documentation in \fIhtml\fR form in
the [DEPOT_TOOLS]/docs/html folder\&. | |
139 .sp .5v | |
140 .RE | |
141 .SS "PREREQUISITES" | |
142 .sp | |
143 This tutorial assumes basic familiarity with git terminology and concepts\&. If
you need to brush up on these, the following are very good resources: | |
144 .sp | |
145 .RS 4 | |
146 .ie n \{\ | |
147 \h'-04'\(bu\h'+03'\c | |
148 .\} | |
149 .el \{\ | |
150 .sp -1 | |
151 .IP \(bu 2.3 | |
152 .\} | |
153 \m[blue]\fBThink like (a) Git\fR\m[]\&\s-2\u[1]\d\s+2 | |
154 \- A lighthearted overview of git\&. If you\(cqre sorta\-familiar with git, but
not | |
155 \fIcomfortable\fR | |
156 with it, then give this a look\&. | |
157 .RE | |
158 .sp | |
159 .RS 4 | |
160 .ie n \{\ | |
161 \h'-04'\(bu\h'+03'\c | |
162 .\} | |
163 .el \{\ | |
164 .sp -1 | |
165 .IP \(bu 2.3 | |
166 .\} | |
167 \m[blue]\fBGit Immersion Tutorial\fR\m[]\&\s-2\u[2]\d\s+2 | |
168 \- An in\-depth git tutorial\&. | |
169 .RE | |
170 .sp | |
171 .RS 4 | |
172 .ie n \{\ | |
173 \h'-04'\(bu\h'+03'\c | |
174 .\} | |
175 .el \{\ | |
176 .sp -1 | |
177 .IP \(bu 2.3 | |
178 .\} | |
179 \m[blue]\fBpcottle\(cqs Visual Git Branching\fR\m[]\&\s-2\u[3]\d\s+2 | |
180 \- An excellent interactive/graphical demo on how git handles commits, branches,
and shows the operations git performs on them\&. | |
181 .RE | |
182 .sp | |
183 .RS 4 | |
184 .ie n \{\ | |
185 \h'-04'\(bu\h'+03'\c | |
186 .\} | |
187 .el \{\ | |
188 .sp -1 | |
189 .IP \(bu 2.3 | |
190 .\} | |
191 \m[blue]\fBPro Git book\fR\m[]\&\s-2\u[4]\d\s+2 | |
192 \- \(lqThe\(rq book for learning git from basics to advanced concepts\&. A bit d
ry, but very through\&. | |
193 .RE | |
194 .sp | |
195 If you\(cqve tried these out and are still having some trouble getting started,
there are \fImany\fR other resources online which should help\&. If you\(cqre \f
Ireally\fR \fB\fIreally\fR\fR stuck, then chat up one of the Chromium infrastruc
ture team members for some pointers\&. | |
196 .PP | |
197 Litmus Test | |
198 .RS 4 | |
199 If you know what | |
200 git add, | |
201 git status, | |
202 git commit | |
203 do and you know | |
204 \fIessentially\fR | |
205 what | |
206 git rebase | |
207 does, then you should know enough to follow along\&. | |
208 .RE | |
209 .SH "SETTING UP" | |
210 .SS "GET DEPOT TOOLS" | |
211 .sp | |
212 Clone the \fIdepot_tools\fR repository: | |
213 .sp | |
214 .if n \{\ | |
215 .RS 4 | |
216 .\} | |
217 .nf | |
218 \fB$ git clone https://chromium\&.googlesource\&.com/chromium/tools/depot_tools\
fR | |
219 .fi | |
220 .if n \{\ | |
221 .RE | |
222 .\} | |
223 .sp | |
224 .sp | |
225 Add \fIdepot_tools\fR to the \fIend\fR of your PATH and MANPATH (you will probab
ly want to put this in your ~/\&.bashrc or ~/\&.zshrc)\&. Assuming you cloned \f
Idepot_tools\fR to /path/to/depot_tools: | |
226 .sp | |
227 .if n \{\ | |
228 .RS 4 | |
229 .\} | |
230 .nf | |
231 \fB$ export PATH=$PATH:/path/to/depot_tools\fR | |
232 \fB$ export MANPATH=$MANPATH:/path/to/depot_tools/docs\fR \fB(1)\fR | |
233 .fi | |
234 .if n \{\ | |
235 .RE | |
236 .\} | |
237 .sp | |
238 .sp | |
239 \fB1. \fRObserve that this path is | |
240 depot_tools/\fBdocs\fR\&. | |
241 .br | |
242 .SS "BOOTSTRAPPING CONFIGURATION" | |
243 .sp | |
244 If you have never used git before, you\(cqll need to set some global git configu
rations; substitute your name and email address in the following commands: | |
245 .sp | |
246 .if n \{\ | |
247 .RS 4 | |
248 .\} | |
249 .nf | |
250 \fB$ git config \-\-global user\&.name \(lqJohn Doe\(rq\fR | |
251 \fB$ git config \-\-global user\&.email \(lqjdoe@email\&.com\(rq\fR | |
252 \fB$ git config \-\-global core\&.autocrlf false\fR | |
253 \fB$ git config \-\-global core\&.filemode false\fR | |
254 \fB$\fR # and for fun! | |
255 \fB$ git config \-\-global color\&.ui true\fR | |
256 .fi | |
257 .if n \{\ | |
258 .RE | |
259 .\} | |
260 .sp | |
261 .SH "TL;DR" | |
262 .sp | |
263 .if n \{\ | |
264 .RS 4 | |
265 .\} | |
266 .nf | |
267 \fB$\fR # get the code | |
268 \fB$\fR # In an empty directory: | |
269 \fB$ fetch {chromium,blink,\&.\&.\&.}\fR | |
270 | |
271 \fB$\fR # Update third_party repos and run pre\-compile hooks | |
272 \fB$ gclient sync\fR | |
273 | |
274 \fB$\fR # Make a new change and upload it for review | |
275 \fB$ git new\-branch branchname\fR | |
276 \fB$\fR # repeat: [edit, git add, git commit] | |
277 \fB$ git cl upload\fR | |
278 | |
279 \fB$\fR # After change is reviewed, commit with the CQ | |
280 \fB$ git cl set_commit\fR | |
281 \fB$\fR # Note that the committed hash which lands will /not/ match the | |
282 \fB$\fR # commit hashes of your local branch\&. | |
283 .fi | |
284 .if n \{\ | |
285 .RE | |
286 .\} | |
287 .sp | |
288 .SH "GETTING THE CODE" | |
289 .sp | |
290 Pick an empty directory and run one of the following: | |
291 .sp | |
292 .if n \{\ | |
293 .RS 4 | |
294 .\} | |
295 .nf | |
296 \fB$ fetch chromium\fR # Basic checkout for desktop Chromium | |
297 \fB$ fetch blink\fR # Chromium code with Blink checked out to tip\-of\-tree | |
298 \fB$ fetch android\fR # Chromium checkout for Android platform | |
299 \fB$ fetch ios\fR # Chromium checkout for iOS platform | |
300 .fi | |
301 .if n \{\ | |
302 .RE | |
303 .\} | |
304 .sp | |
305 .sp | |
306 When the fetch tool completes you should have the following in your working dire
ctory: | |
307 .sp | |
308 .if n \{\ | |
309 .RS 4 | |
310 .\} | |
311 .nf | |
312 \fB\&.gclient\fR # A configuration file for you source checkout | |
313 \fBsrc/\fR # Top\-level Chromium source checkout\&. | |
314 .fi | |
315 .if n \{\ | |
316 .RE | |
317 .\} | |
318 .sp | |
319 .sp | |
320 If you are on linux, then you\(cqll need to run: | |
321 .sp | |
322 .if n \{\ | |
323 .RS 4 | |
324 .\} | |
325 .nf | |
326 \fB$ cd src && \&./build/install\-build\-deps\&.sh\fR | |
327 .fi | |
328 .if n \{\ | |
329 .RE | |
330 .\} | |
331 .sp | |
332 .sp | |
333 And finally: | |
334 .sp | |
335 .if n \{\ | |
336 .RS 4 | |
337 .\} | |
338 .nf | |
339 \fB$ gclient sync\fR | |
340 .fi | |
341 .if n \{\ | |
342 .RE | |
343 .\} | |
344 .sp | |
345 .sp | |
346 This will pull all dependencies of the Chromium src checkout\&. You will need to
run this any time you update the main src checkout\&. | |
347 .SH "CREATING / UPLOADING A CL" | |
348 .if n \{\ | |
349 .sp | |
350 .\} | |
351 .RS 4 | |
352 .it 1 an-trap | |
353 .nr an-no-space-flag 1 | |
354 .nr an-break-flag 1 | |
355 .br | |
356 .ps +1 | |
357 \fBNote\fR | |
358 .ps -1 | |
359 .br | |
360 .sp | |
361 The remainder of the tutorial assumes that your current working directory is the
src/ folder mentioned in Getting the code\&. | |
362 .sp .5v | |
363 .RE | |
364 .sp | |
365 Each CL corresponds exactly with a single branch in git\&. Any time you want to
begin a new CL, just: | |
366 .sp | |
367 .if n \{\ | |
368 .RS 4 | |
369 .\} | |
370 .nf | |
371 \fB$ git new\-branch <branch_name>\fR | |
372 .fi | |
373 .if n \{\ | |
374 .RE | |
375 .\} | |
376 .sp | |
377 .sp | |
378 This will create and checkout a new branch named branch_name which will track th
e default upstream (which is origin/master)\&. See \fBgit-new-branch\fR(1) for m
ore features, such as the ability to track \fILKGR\fR\&. | |
379 .sp | |
380 Commit as many changes as you like to this branch\&. When you want to upload it
for review, run: | |
381 .sp | |
382 .if n \{\ | |
383 .RS 4 | |
384 .\} | |
385 .nf | |
386 \fB$ git cl upload\fR | |
387 .fi | |
388 .if n \{\ | |
389 .RE | |
390 .\} | |
391 .sp | |
392 .sp | |
393 This will take the diff of your branch against its upstream (origin/master), and
will post it to the \m[blue]\fBChromium code review site\fR\m[]\&\s-2\u[5]\d\s+
2\&. | |
394 .SH "UPDATING THE CODE" | |
395 .sp | |
396 Inevitably, you\(cqll want to pull in changes from the main Chromium repo\&. Thi
s is pretty easy with \fIdepot_tools\fR: | |
397 .sp | |
398 .if n \{\ | |
399 .RS 4 | |
400 .\} | |
401 .nf | |
402 \fB$ git rebase\-update\fR | |
403 .fi | |
404 .if n \{\ | |
405 .RE | |
406 .\} | |
407 .sp | |
408 .sp | |
409 This command will update all of your CLs to contain the latest code from their u
pstreams\&. It will also automatically clean up CLs which have been committed an
d a couple other nice things\&. See \fBgit-rebase-update\fR(1) for the full scoo
p\&. | |
410 .sp | |
411 One thing to look out for are \fImerge conflicts\fR\&. These happen for exactly
the same as they do with SVN, but the experience is a little more controllable w
ith git\&. git rebase\-update will try to rebase all your branches for you, but
if it encounters a merge conflict in one, it will halt and leave you in a rebase
conflict state (see \fBgit-rebase\fR(1))\&. Resolving git rebase merge conflict
s is beyond the scope of this tutorial, but there are many good sources online (
see the Prerequisites for some)\&. | |
412 .sp | |
413 Sometimes you\(cqre pretty certain that you\(cqve committed a certain branch, bu
t git rebase\-update isn\(cqt able to tell that for sure\&. This is usually beca
use your branch doesn\(cqt rebase cleanly\&. You could just delete the branch wi
th git branch \-D <branch>, but you\(cqd like to double check the diff of your b
ranch against its upstream before deleting it\&. If this is the case you can abo
rt the rebase started by git rebase\-update, and then run \fBgit-squash-branch\f
R(1) to flatten your branch into a single commit\&. When you run git rebase\-upd
ate again, you\(cqll get a (hopefully) much smaller / saner diff\&. If it turns
out you were wrong about your branch being fully committed, you can use \fBgit-r
eflog\fR(1) to reset your branch back to where it was before\&. If the diff look
s inconsequential, you can use git rebase \-\-skip to ignore it, and then git re
base\-update will clean it up for you\&. | |
414 .sp | |
415 Once you\(cqre done resolving all of the merge conflict, just run git rebase\-up
date, and it will pick up where it left off\&. Once the command has finished upd
ating all of your branches, it will return you back to the branch you started on
\&. | |
416 .if n \{\ | |
417 .sp | |
418 .\} | |
419 .RS 4 | |
420 .it 1 an-trap | |
421 .nr an-no-space-flag 1 | |
422 .nr an-break-flag 1 | |
423 .br | |
424 .ps +1 | |
425 \fBNote\fR | |
426 .ps -1 | |
427 .br | |
428 .sp | |
429 Running git rebase\-update will update all your branches, but it will not automa
tically run gclient sync to update your dependencies\&. | |
430 .sp .5v | |
431 .RE | |
432 .SH "MANAGING MULTIPLE CLS" | |
433 .sp | |
434 Sometimes you want to work on more than one CL at once (say, you have a CL poste
d for review and want to work on something else)\&. For each CL that you want to
work on, just use git new\-branch <branchname>\&. | |
435 .sp | |
436 Once you start to have more than one CL at a time, it can be easy to lose your b
earings\&. Fortunately, \fIdepot_tools\fR has two tools to help you out: | |
437 .sp | |
438 .if n \{\ | |
439 .RS 4 | |
440 .\} | |
441 .nf | |
442 \fB$ git map\fR | |
443 *\:\fB 7dcfe47 \fR (\:\fBfrozen_changes\fR\:) 2014\-03\-12 ~ FREEZE\&.unin
dexed | |
444 * \fB4b0c180\fR 2014\-03\-12 ~ modfile | |
445 * \fB59a7cca\fR 2014\-03\-12 ~ a deleted file | |
446 * \fB6bec695\fR (\:origin/master\:) 2014\-03\-11 ~ Add neat feature \f
B<(frozen_changes)\fR | |
447 * \fBd15a38a\fR 2014\-03\-11 ~ Epic README update | |
448 * \fBd559894\fR (\:\fBmaster\fR\:) 2014\-03\-11 ~ Important upstream chan
ge | |
449 | * \fB9c311fd\fR (\:\fBcool_feature\fR\:) 2014\-03\-11 ~ Respond to CL com
ments | |
450 | | * \fB2a1eeb2\fR (\:\fBsubfeature\fR\:) 2014\-03\-11 ~ integrate with Cool
Service | |
451 | | * \fBd777af6\fR 2014\-03\-11 ~ slick commenting action | |
452 | |/ | |
453 | * \fB265803a\fR 2014\-03\-11 ~ another improvement \fB<(subfeature)\fR | |
454 | * \fB6d831ac\fR (\:\fBspleen_tag\fR\:) 2014\-03\-11 ~ Refactor spleen | |
455 | * \fB82e74ab\fR 2014\-03\-11 ~ Add widget | |
456 |/ | |
457 * \fBd08c5b3\fR (\:\fBbogus_noparent\fR\:) 2014\-03\-11 ~ Wonderful begin
nings \fB<(cool_feature)\fR | |
458 .fi | |
459 .if n \{\ | |
460 .RE | |
461 .\} | |
462 .sp | |
463 .sp | |
464 Note that this example repo is in dire need of a \fBgit-rebase-update\fR(1)! | |
465 .sp | |
466 .if n \{\ | |
467 .RS 4 | |
468 .\} | |
469 .nf | |
470 \fB$ git map\-branches\fR | |
471 origin/master | |
472 cool_feature | |
473 subfeature | |
474 frozen_changes * | |
475 master | |
476 .fi | |
477 .if n \{\ | |
478 .RE | |
479 .\} | |
480 .sp | |
481 | |
482 .PP | |
483 \fBgit-map\fR(1) | |
484 .RS 4 | |
485 This tool shows you the history of all of your branches in a pseudo\-graphical f
ormat\&. In particular, it will show you which commits all of your branches are
on, which commit you currently have checked out, and more\&. Check out the doc f
or the full details\&. | |
486 .RE | |
487 .PP | |
488 \fBgit-map-branches\fR(1) | |
489 .RS 4 | |
490 This tool just shows you which branches you have in your repo, and thier upstrea
m relationship to each other (as well as which branch you have checked out at th
e moment)\&. | |
491 .RE | |
492 .sp | |
493 Additionally, sometimes you need to switch between branches, but you\(cqve got w
ork in progress\&. You could use \fBgit-stash\fR(1), but that can be tricky to m
anage because you need to remember which branches you stashed what changes on\&.
Helpfully \fIdepot_tools\fR includes two tools which can greatly assist in case
: | |
494 .sp | |
495 \fBgit-freeze\fR(1) allows you to put the current branch in \*(Aqsuspended anima
tion\*(Aq by committing your changes to a specially\-named commit on the top of
your current branch\&. When you come back to your branch later, you can just run
\fBgit-thaw\fR(1) to get your work\-in\-progress changes back to what they were
\&. | |
496 .sp | |
497 Another useful tool is \fBgit-rename-branch\fR(1)\&. Unlike git branch \-m <old>
<new>, this tool will correctly preserve the upstream relationships of your bra
nch compared to its downstreams\&. | |
498 .sp | |
499 Finally, take a look at \fBgit-upstream-diff\fR(1)\&. This will show you the com
bined diff for all the commits on your branch against the upstream tracking bran
ch\&. This is \fIexactly\fR what git cl upload will push up to code review\&. Ad
ditionally, consider trying the \-\-wordwise argument to get a colorized per\-wo
rd diff (instead of a per\-line diff)\&. | |
500 .SH "MANAGING DEPENDENT CLS" | |
501 .sp | |
502 Now that you know how to manage \fIindependent\fR CLs, we\(cqll see how to manag
e \fIdependent\fR CLs\&. Dependent CLs are useful when your second (or third or
fourth or \&...) CL depends on the changes in one of your other CLs (such as: CL
2 won\(cqt compile without CL 1, but you want to submit them as two separate re
views)\&. | |
503 .sp | |
504 Like all of the other CLs we\(cqve created, we use \fBgit-new-branch\fR(1), but
this time with an extra argument\&. First, git checkout the branch you want to b
ase the new one on (i\&.e\&. CL 1), and then run: | |
505 .sp | |
506 .if n \{\ | |
507 .RS 4 | |
508 .\} | |
509 .nf | |
510 \fB$ git new\-branch \-\-upstream_current <branch_name>\fR | |
511 .fi | |
512 .if n \{\ | |
513 .RE | |
514 .\} | |
515 .sp | |
516 .sp | |
517 This will make a new branch which tracks the \fIcurrent\fR branch as its upstrea
m (as opposed to \fIorigin/master\fR)\&. All changes you commit to this branch w
ill be in addition to the previous branch, but when you git cl upload, you will
only upload the diff for the dependent (child) branch\&. You may have as many br
anches nested in this fashion as you like\&. | |
518 .sp | |
519 \fBgit-map\fR(1) and \fBgit-map-branches\fR(1) are particularly helpful when you
have dependent branches\&. In addition, there are two helper commands which let
you traverse your working copy up and down this tree of branches: \fBgit-nav-up
stream\fR(1) and \fBgit-nav-downstream\fR(1)\&. | |
520 .sp | |
521 Sometimes when dealing with dependent CLs, it turns out that you accidentally ba
sed a branch on the wrong upstream, but since then you\(cqve committed changes t
o it, or even based \fIanother\fR branch off of that one\&. Or you discover that
you have two independent CLs that would actually be much better off as dependen
t CLs\&. In instances like these, you can check out the offending branch and use
\fBgit-reparent-branch\fR(1) to move it to track a different parent\&. Note tha
t this can also be used to move a branch from tracking origin/master to lkgr or
vice versa\&. | |
522 .SH "EXAMPLE WALKTHROUGH" | |
523 .sp | |
524 This section will demo what a typical workflow looks like when writing, updating
, and committing multiple CLs\&. | |
525 .sp | |
526 | |
527 .sp | |
528 .if n \{\ | |
529 .RS 4 | |
530 .\} | |
531 .nf | |
532 \fB$ fetch chromium\fR | |
533 \&.\&.\&. truncated output \&.\&.\&. | |
534 \fB$ cd src\fR | |
535 .fi | |
536 .if n \{\ | |
537 .RE | |
538 .\} | |
539 .sp | |
540 (only on linux) | |
541 .sp | |
542 .if n \{\ | |
543 .RS 4 | |
544 .\} | |
545 .nf | |
546 \fB$ \&./build/install\-build\-deps\&.sh\fR | |
547 \&.\&.\&. truncated output \&.\&.\&. | |
548 .fi | |
549 .if n \{\ | |
550 .RE | |
551 .\} | |
552 .sp | |
553 Pull in all dependencies for HEAD | |
554 .sp | |
555 .if n \{\ | |
556 .RS 4 | |
557 .\} | |
558 .nf | |
559 \fB$ gclient sync\fR | |
560 \&.\&.\&. truncated output \&.\&.\&. | |
561 .fi | |
562 .if n \{\ | |
563 .RE | |
564 .\} | |
565 .sp | |
566 Let\*(Aqs fix something! | |
567 .sp | |
568 .if n \{\ | |
569 .RS 4 | |
570 .\} | |
571 .nf | |
572 \fB$ git new\-branch fix_typo\fR | |
573 \fB$ echo \-e \*(Aq/Banana\ens/Banana/Kuun\enwq\*(Aq | ed build/whitespace_file\
&.txt\fR | |
574 1503 | |
575 It was a Domo\-Banana\&. | |
576 It was a Domo\-Kuun\&. | |
577 1501 | |
578 \fB$ git commit \-am \*(AqFix terrible typo\&.\*(Aq\fR | |
579 [fix_typo 615ffa7] Fix terrible typo\&. | |
580 1 file changed, 1 insertion(+), 1 deletion(\-) | |
581 \fB$ git map\fR | |
582 \fB* 615ffa7 \fR (\fBfix_typo\fR) 2014\-04\-10 ~ Fix terrible typo\&. | |
583 * \fBbeec6f4 \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Make ReflectorIm
pl use mailboxes\fB <(fix_typo)\fR | |
584 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
585 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
586 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
587 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
588 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
589 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
590 \fB$ git status\fR | |
591 On branch fix_typo | |
592 Your branch is ahead of \*(Aqorigin/master\*(Aq by 1 commit\&. | |
593 (use "git push" to publish your local commits) | |
594 | |
595 nothing to commit, working directory clean | |
596 \fB$ git cl upload \-r domo@chromium\&.org \-\-send\-mail\fR | |
597 \&.\&.\&. truncated output \&.\&.\&. | |
598 .fi | |
599 .if n \{\ | |
600 .RE | |
601 .\} | |
602 .sp | |
603 While we wait for feedback, let\*(Aqs do something else\&. | |
604 .sp | |
605 .if n \{\ | |
606 .RS 4 | |
607 .\} | |
608 .nf | |
609 \fB$ git new\-branch chap2\fR | |
610 \fB$ git map\-branches\fR | |
611 \fBorigin/master | |
612 chap2 * | |
613 \fR fix_typo | |
614 \fB$ cat >> build/whitespace_file\&.txt <<EOF\fR | |
615 | |
616 "You recall what happened on Mulholland drive?" The ceiling fan rotated slowly | |
617 overhead, barely disturbing the thick cigarette smoke\&. No doubt was left about | |
618 when the fan was last cleaned\&. | |
619 EOF | |
620 \fB$ git status\fR | |
621 On branch chap2 | |
622 Your branch is up\-to\-date with \*(Aqorigin/master\*(Aq\&. | |
623 | |
624 Changes not staged for commit: | |
625 (use "git add <file>\&.\&.\&." to update what will be committed) | |
626 (use "git checkout \-\- <file>\&.\&.\&." to discard changes in working directo
ry) | |
627 | |
628 modified: build/whitespace_file\&.txt | |
629 | |
630 no changes added to commit (use "git add" and/or "git commit \-a") | |
631 .fi | |
632 .if n \{\ | |
633 .RE | |
634 .\} | |
635 .sp | |
636 Someone on the code review pointed out that our typo\-fix has a typo :( We\*(Aqr
e still working on \*(Aqchap2\*(Aq but we really want to land \*(Aqfix_typo\*(Aq
, so let\*(Aqs switch over and fix it\&. | |
637 .sp | |
638 .if n \{\ | |
639 .RS 4 | |
640 .\} | |
641 .nf | |
642 \fB$ git freeze\fR | |
643 \fB$ git checkout fix_typo\fR | |
644 Switched to branch \*(Aqfix_typo\*(Aq | |
645 Your branch is ahead of \*(Aqorigin/master\*(Aq by 1 commit\&. | |
646 (use "git push" to publish your local commits) | |
647 \fB$ echo \-e \*(Aq/Kuun\ens/Kuun/Kun\enwq\*(Aq | ed build/whitespace_file\&.txt
\fR | |
648 1501 | |
649 It was a Domo\-Kuun\&. | |
650 It was a Domo\-Kun\&. | |
651 1500 | |
652 \fB$ git upstream\-diff \-\-wordwise\fR | |
653 \fBdiff \-\-git a/build/whitespace_file\&.txt b/build/whitespace_file\&.txt\fR | |
654 \fBindex 3eba355\&.\&.57cdcee 100644\fR | |
655 \fB\-\-\- a/build/whitespace_file\&.txt\fR | |
656 \fB+++ b/build/whitespace_file\&.txt\fR | |
657 @@ \-17,7 +17,7 @@ swept up the streets (for it is in London that our scene lies
), rattling along | |
658 the housetops, and fiercely agitating the scanty flame of the lamps that | |
659 struggled against the elements\&. A hooded figure emerged\&. | |
660 | |
661 It was a Domo\-BananaKun\&. | |
662 | |
663 "What took you so long?", inquired his wife\&. | |
664 | |
665 \fB$ git commit \-am \*(AqFix typo for good!\*(Aq\fR | |
666 [fix_typo 2c0ad9c] Fix typo for good! | |
667 1 file changed, 1 insertion(+), 1 deletion(\-) | |
668 \fB$ git cl upload\fR | |
669 \&.\&.\&. truncated output \&.\&.\&. | |
670 .fi | |
671 .if n \{\ | |
672 .RE | |
673 .\} | |
674 .sp | |
675 Since we got lgtm, let the CQ land it\&. | |
676 .sp | |
677 .if n \{\ | |
678 .RS 4 | |
679 .\} | |
680 .nf | |
681 \fB$ git cl set_commit\fR | |
682 \fB$ git map\fR | |
683 * \fB0e2e52e \fR (\fBchap2\fR) 2014\-04\-10 ~ FREEZE\&.unindexed | |
684 | \fB* 2c0ad9c \fR (\fBfix_typo\fR) 2014\-04\-10 ~ Fix typo for good! | |
685 | * \fB615ffa7 \fR 2014\-04\-10 ~ Fix terrible typo\&. | |
686 |/ | |
687 * \fBbeec6f4 \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Make ReflectorIm
pl use mailboxes\fB <(chap2, fix_typo)\fR | |
688 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
689 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
690 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
691 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
692 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
693 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
694 .fi | |
695 .if n \{\ | |
696 .RE | |
697 .\} | |
698 .sp | |
699 Switch back to where we were using the nav* commands (for fun\&.\&.\&. git check
out would work here too) | |
700 .sp | |
701 .if n \{\ | |
702 .RS 4 | |
703 .\} | |
704 .nf | |
705 \fB$ git map\-branches\fR | |
706 origin/master | |
707 chap2 | |
708 \fB fix_typo * | |
709 $ git nav\-upstream\fR | |
710 Note: checking out \*(Aqorigin/master\*(Aq\&. | |
711 | |
712 You are in \*(Aqdetached HEAD\*(Aq state\&. You can look around, make experiment
al | |
713 changes and commit them, and you can discard any commits you make in this | |
714 state without impacting any branches by performing another checkout\&. | |
715 | |
716 If you want to create a new branch to retain commits you create, you may | |
717 do so (now or later) by using \-b with the checkout command again\&. Example: | |
718 | |
719 git checkout \-b new_branch_name | |
720 | |
721 HEAD is now at beec6f4\&.\&.\&. Make ReflectorImpl use mailboxes | |
722 \fB$ git nav\-downstream\fR | |
723 Please select a downstream branch | |
724 0\&. chap2 | |
725 1\&. fix_typo | |
726 Selection (0\-1)[0]: 0 | |
727 Previous HEAD position was beec6f4\&.\&.\&. Make ReflectorImpl use mailboxes | |
728 Switched to branch \*(Aqchap2\*(Aq | |
729 Your branch is ahead of \*(Aqorigin/master\*(Aq by 1 commit\&. | |
730 (use "git push" to publish your local commits) | |
731 \fB$ git map\-branches\fR | |
732 origin/master | |
733 \fB chap2 * | |
734 \fR fix_typo | |
735 .fi | |
736 .if n \{\ | |
737 .RE | |
738 .\} | |
739 .sp | |
740 Now we can pick up on chapter2 where we left off\&. | |
741 .sp | |
742 .if n \{\ | |
743 .RS 4 | |
744 .\} | |
745 .nf | |
746 \fB$ git thaw\fR | |
747 \fB$ git diff\fR | |
748 \fBdiff \-\-git a/build/whitespace_file\&.txt b/build/whitespace_file\&.txt\fR | |
749 \fBindex 3eba355\&.\&.9d08d9d 100644\fR | |
750 \fB\-\-\- a/build/whitespace_file\&.txt\fR | |
751 \fB+++ b/build/whitespace_file\&.txt\fR | |
752 @@ \-34,3 +34,7 @@ with his fork, watching the runny jelly spread and pool acros
s his plate, | |
753 like the blood of a dying fawn\&. \e"It reminds me of that time \-\-\e" he star
ted, as | |
754 his wife cut in quickly: \e"\-\- please\&. I can\*(Aqt bear to hear it\&.\e"\&.
A flury of | |
755 images coming from the past flowed through his mind\&. | |
756 + | |
757 +"You recall what happened on Mulholland drive?" The ceiling fan rotated slowly | |
758 +overhead, barely disturbing the thick cigarette smoke\&. No doubt was left abou
t | |
759 +when the fan was last cleaned\&. | |
760 \fB$ cat >> build/whitespace_file\&.txt <<EOF\fR | |
761 | |
762 There was an poignant pause\&. | |
763 EOF | |
764 \fB$ git diff\fR | |
765 \fBdiff \-\-git a/build/whitespace_file\&.txt b/build/whitespace_file\&.txt\fR | |
766 \fBindex 3eba355\&.\&.e3a55de 100644\fR | |
767 \fB\-\-\- a/build/whitespace_file\&.txt\fR | |
768 \fB+++ b/build/whitespace_file\&.txt\fR | |
769 @@ \-34,3 +34,9 @@ with his fork, watching the runny jelly spread and pool acros
s his plate, | |
770 like the blood of a dying fawn\&. \e"It reminds me of that time \-\-\e" he star
ted, as | |
771 his wife cut in quickly: \e"\-\- please\&. I can\*(Aqt bear to hear it\&.\e"\&.
A flury of | |
772 images coming from the past flowed through his mind\&. | |
773 + | |
774 +"You recall what happened on Mulholland drive?" The ceiling fan rotated slowly | |
775 +overhead, barely disturbing the thick cigarette smoke\&. No doubt was left abou
t | |
776 +when the fan was last cleaned\&. | |
777 + | |
778 +There was an poignant pause\&. | |
779 \fB$ git commit \-am \*(AqFinish chapter 2\*(Aq\fR | |
780 [chap2 ceef712] Finish chapter 2 | |
781 1 file changed, 6 insertions(+) | |
782 \fB$ git map\fR | |
783 \fB* ceef712 \fR (\fBchap2\fR) 2014\-04\-10 ~ Finish chapter 2 | |
784 | * \fB2c0ad9c \fR (\fBfix_typo\fR) 2014\-04\-10 ~ Fix typo for good! | |
785 | * \fB615ffa7 \fR 2014\-04\-10 ~ Fix terrible typo\&. | |
786 |/ | |
787 * \fBbeec6f4 \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Make ReflectorIm
pl use mailboxes\fB <(chap2, fix_typo)\fR | |
788 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
789 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
790 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
791 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
792 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
793 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
794 \fB$ git cl upload \-r domo@chromium\&.org \-\-send\-mail\fR | |
795 \&.\&.\&. truncated output \&.\&.\&. | |
796 .fi | |
797 .if n \{\ | |
798 .RE | |
799 .\} | |
800 .sp | |
801 We poke a committer until they lgtm :) | |
802 .sp | |
803 .if n \{\ | |
804 .RS 4 | |
805 .\} | |
806 .nf | |
807 \fB$ git cl set_commit\fR | |
808 .fi | |
809 .if n \{\ | |
810 .RE | |
811 .\} | |
812 .sp | |
813 While that runs through the CQ, let\*(Aqs get started on chapter 3\&. Since we k
now that chapter 3 depends on chapter 2, we\*(Aqll track the current chapter2 br
anch\&. | |
814 .sp | |
815 .if n \{\ | |
816 .RS 4 | |
817 .\} | |
818 .nf | |
819 \fB$ git new\-branch \-\-upstream_current chap3\fR | |
820 \fB$ cat >> build/whitespace_file\&.txt <<EOF\fR | |
821 | |
822 CHAPTER 3: | |
823 Mr\&. Usagi felt that something wasn\*(Aqt right\&. Shortly after the Domo\-Kun
left he | |
824 began feeling sick\&. | |
825 EOF | |
826 \fB$ git commit \-am \*(Aqbeginning of chapter 3\*(Aq\fR | |
827 [chap3 7d4238a] beginning of chapter 3 | |
828 1 file changed, 4 insertions(+) | |
829 \fB$ git map\fR | |
830 \fB* 7d4238a \fR (\fBchap3\fR) 2014\-04\-10 ~ beginning of chapter 3 | |
831 * \fBceef712 \fR (\fBchap2\fR) 2014\-04\-10 ~ Finish chapter 2\fB <(chap3)
\fR | |
832 | * \fB2c0ad9c \fR (\fBfix_typo\fR) 2014\-04\-10 ~ Fix typo for good! | |
833 | * \fB615ffa7 \fR 2014\-04\-10 ~ Fix terrible typo\&. | |
834 |/ | |
835 * \fBbeec6f4 \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Make ReflectorIm
pl use mailboxes\fB <(chap2, fix_typo)\fR | |
836 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
837 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
838 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
839 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
840 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
841 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
842 .fi | |
843 .if n \{\ | |
844 .RE | |
845 .\} | |
846 .sp | |
847 We haven\*(Aqt updated the code in a while, so let\*(Aqs do that now\&. | |
848 .sp | |
849 .if n \{\ | |
850 .RS 4 | |
851 .\} | |
852 .nf | |
853 \fB$ git rebase\-update\fR | |
854 Fetching origin | |
855 From https://upstream | |
856 beec6f4\&.\&.59cdb73 master \-> origin/master | |
857 Rebasing: chap2 | |
858 Rebasing: fix_typo | |
859 Failed! Attempting to squash fix_typo \&.\&.\&. Success! | |
860 Rebasing: chap3 | |
861 Deleted branch fix_typo (was 5d26fec)\&. | |
862 Reparented chap3 to track origin/master (was tracking chap2) | |
863 Deleted branch chap2 (was 5d26fec)\&. | |
864 .fi | |
865 .if n \{\ | |
866 .RE | |
867 .\} | |
868 .sp | |
869 Well look at that\&. The CQ landed our typo and chapter2 branches already and gi
t rebase\-update cleaned them up for us\&. | |
870 .sp | |
871 .if n \{\ | |
872 .RS 4 | |
873 .\} | |
874 .nf | |
875 \fB$ gclient sync\fR | |
876 \&.\&.\&. truncated output \&.\&.\&. | |
877 \fB$ git map\fR | |
878 \fB* 93fe917 \fR (\fBchap3\fR) 2014\-04\-10 ~ beginning of chapter 3 | |
879 * \fB5d26fec \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Finish chapter 2
\fB <(chap3)\fR | |
880 * \fBdf7fefb \fR 2014\-04\-10 ~ Revert 255617, due to it not tracking use of
the link doctor page properly\&. | |
881 * \fB4b39cda \fR 2014\-04\-10 ~ Fix terrible typo\&. | |
882 * \fB248c5b6 \fR 2014\-04\-10 ~ Temporarily CHECK(trial) in ChromeRenderProce
ssObserver::OnSetFieldTrialGroup\&. | |
883 * \fB8171df8 \fR 2014\-04\-10 ~ Remove AMD family check for the flapper crypt
o accelerator\&. | |
884 * \fBd6a30d2 \fR 2014\-04\-10 ~ Change the Pica load benchmark to listen for
the polymer\-ready event | |
885 * \fBbeec6f4 \fR 2014\-04\-10 ~ Make ReflectorImpl use mailboxes | |
886 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
887 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
888 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
889 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
890 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
891 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
892 .fi | |
893 .if n \{\ | |
894 .RE | |
895 .\} | |
896 .sp | |
897 Someone on IRC mentions that they actually landed a chapter 3 already! We should
pull their changes before continuing\&. Brace for a code conflict! | |
898 .sp | |
899 .if n \{\ | |
900 .RS 4 | |
901 .\} | |
902 .nf | |
903 \fB$ git rebase\-update\fR | |
904 Fetching origin | |
905 From https://upstream | |
906 5d26fec\&.\&.59cdb73 master \-> origin/master | |
907 Rebasing: chap2 | |
908 \&.\&.\&. lots of output, it\*(Aqs a conflict alright :(\&.\&.\&. | |
909 \fB$ git diff\fR | |
910 \fBdiff \-\-cc build/whitespace_file\&.txt\fR | |
911 \fBindex 1293282,f903ea2\&.\&.0000000\fR | |
912 \fB\-\-\- a/build/whitespace_file\&.txt\fR | |
913 \fB+++ b/build/whitespace_file\&.txt\fR | |
914 @@@ \-42,4 \-42,5 +42,9 @@@ when the fan was last cleaned | |
915 There was an poignant pause\&. | |
916 | |
917 CHAPTER 3: | |
918 ++<<<<<<< HEAD | |
919 +Hilariousness! This chapter is awesome! | |
920 ++======= | |
921 + Mr\&. Usagi felt that something wasn\*(Aqt right\&. Shortly after the Domo\-Ku
n left he | |
922 + began feeling sick\&. | |
923 ++>>>>>>> beginning of chapter 3 | |
924 .fi | |
925 .if n \{\ | |
926 .RE | |
927 .\} | |
928 .sp | |
929 Oh, well, that\*(Aqs not too bad\&. In fact\&.\&.\&. that\*(Aqs a terrible chapt
er 3! | |
930 .sp | |
931 .if n \{\ | |
932 .RS 4 | |
933 .\} | |
934 .nf | |
935 \fB$ $EDITOR build/whitespace_file\&.txt\fR | |
936 \&.\&.\&. /me deletes bad chapter 3 \&.\&.\&. | |
937 \fB$ git add build/whitespace_file\&.txt\fR | |
938 \fB$ git diff \-\-cached\fR | |
939 \fBdiff \-\-git a/build/whitespace_file\&.txt b/build/whitespace_file\&.txt\fR | |
940 \fBindex 1293282\&.\&.f903ea2 100644\fR | |
941 \fB\-\-\- a/build/whitespace_file\&.txt\fR | |
942 \fB+++ b/build/whitespace_file\&.txt\fR | |
943 @@ \-42,4 +42,5 @@ when the fan was last cleaned\&. | |
944 There was an poignant pause\&. | |
945 | |
946 CHAPTER 3: | |
947 \-Hilariousness! This chapter is awesome! | |
948 +Mr\&. Usagi felt that something wasn\*(Aqt right\&. Shortly after the Domo\-Kun
left he | |
949 +began feeling sick\&. | |
950 .fi | |
951 .if n \{\ | |
952 .RE | |
953 .\} | |
954 .sp | |
955 Much better | |
956 .sp | |
957 .if n \{\ | |
958 .RS 4 | |
959 .\} | |
960 .nf | |
961 \fB$ git rebase \-\-continue\fR | |
962 Applying: beginning of chapter 3 | |
963 \fB$ git rebase\-update\fR | |
964 Fetching origin | |
965 chap3 up\-to\-date | |
966 \fB$ gclient sync\fR | |
967 \&.\&.\&. truncated output \&.\&.\&. | |
968 \fB$ git map\fR | |
969 \fB* 1cb4f5b \fR (\fBchap3\fR) 2014\-04\-10 ~ beginning of chapter 3 | |
970 * \fB59cdb73 \fR (origin/master, origin/HEAD) 2014\-04\-10 ~ Refactor data in
terchange format\&.\fB <(chap3)\fR | |
971 * \fB34676a3 \fR 2014\-04\-10 ~ Ensure FS is exited for all not\-in\-same\-pa
ge navigations\&. | |
972 * \fB7d4784e \fR 2014\-04\-10 ~ Add best chapter2 ever! | |
973 * \fB5d26fec \fR 2014\-04\-10 ~ Finish chapter 2 | |
974 * \fBdf7fefb \fR 2014\-04\-10 ~ Revert 255617, due to it not tracking use of
the link doctor page properly\&. | |
975 * \fB4b39cda \fR 2014\-04\-10 ~ Fix terrible typo\&. | |
976 * \fB248c5b6 \fR 2014\-04\-10 ~ Temporarily CHECK(trial) in ChromeRenderProce
ssObserver::OnSetFieldTrialGroup\&. | |
977 * \fB8171df8 \fR 2014\-04\-10 ~ Remove AMD family check for the flapper crypt
o accelerator\&. | |
978 * \fBd6a30d2 \fR 2014\-04\-10 ~ Change the Pica load benchmark to listen for
the polymer\-ready event | |
979 * \fBbeec6f4 \fR 2014\-04\-10 ~ Make ReflectorImpl use mailboxes | |
980 * \fB41290e0 \fR 2014\-04\-10 ~ don\*(Aqt use glibc\-specific execinfo\&.h on
uclibc builds | |
981 * \fBa76fde7 \fR 2014\-04\-10 ~ [fsp] Add requestUnmount() method together wi
th the request manager\&. | |
982 * \fB9de7a71 \fR 2014\-04\-10 ~ linux_aura: Use system configuration for midd
le clicking the titlebar\&. | |
983 * \fB073b0c2 \fR 2014\-04\-10 ~ ContentView\->ContentViewCore in ContentViewR
enderView | |
984 * \fB2250f53 \fR 2014\-04\-10 ~ ozone: evdev: Filter devices by path | |
985 * \fB33a7a74 \fR 2014\-04\-10 ~ Always output seccomp error messages to stder
r | |
986 \fB$ git cl upload\fR | |
987 \&.\&.\&. truncated output \&.\&.\&. | |
988 .fi | |
989 .if n \{\ | |
990 .RE | |
991 .\} | |
992 .sp | |
993 .sp | |
994 So there you have the basic flow\&. Note that you don\(cqt \fIhave\fR to do chro
mium development using these tools\&. Any git workflow is compatible, as long as
git cl upload is able to upload good patches\&. | |
995 .SH "CONCLUSION" | |
996 .sp | |
997 Hopefully that gives you a good starting overview on Chromium development using
\fIdepot_tools\fR\&. If you have questions which weren\(cqt answered by this tut
orial or the man pages for the tools (see the index of all tools here: \fBdepot_
tools\fR(7)), please feel free to ask\&. | |
998 .SH "GLOSSARY" | |
999 .PP | |
1000 CL | |
1001 .RS 4 | |
1002 A | |
1003 \fIchange\-list\fR\&. This is a diff which you would like to commit to the codeb
ase\&. | |
1004 .RE | |
1005 .PP | |
1006 DEPS | |
1007 .RS 4 | |
1008 A file in the chromium checkout which | |
1009 gclient sync | |
1010 uses to determine what dependencies to pull in\&. This file also contains | |
1011 \fIhooks\fR\&. | |
1012 .RE | |
1013 .PP | |
1014 LKGR | |
1015 .RS 4 | |
1016 Last Known Good Revision\&. This is a | |
1017 \fBgit-tag\fR(1) | |
1018 which tracks the last version of | |
1019 origin/master | |
1020 which has passed the full set of testing on the | |
1021 \m[blue]\fBmain Chromium waterfall\fR\m[]\&\s-2\u[6]\d\s+2\&. | |
1022 .RE | |
1023 .SH "CHROMIUM DEPOT_TOOLS" | |
1024 .sp | |
1025 Part of the chromium \fBdepot_tools\fR(7) suite\&. These tools are meant to assi
st with the development of chromium and related projects\&. Download the tools f
rom \m[blue]\fBhere\fR\m[]\&\s-2\u[7]\d\s+2\&. | |
1026 .SH "NOTES" | |
1027 .IP " 1." 4 | |
1028 Think like (a) Git | |
1029 .RS 4 | |
1030 \%http://think-like-a-git.net/ | |
1031 .RE | |
1032 .IP " 2." 4 | |
1033 Git Immersion Tutorial | |
1034 .RS 4 | |
1035 \%http://gitimmersion.com/ | |
1036 .RE | |
1037 .IP " 3." 4 | |
1038 pcottle\(cqs Visual Git Branching | |
1039 .RS 4 | |
1040 \%http://pcottle.github.io/learnGitBranching | |
1041 .RE | |
1042 .IP " 4." 4 | |
1043 Pro Git book | |
1044 .RS 4 | |
1045 \%http://git-scm.com/book | |
1046 .RE | |
1047 .IP " 5." 4 | |
1048 Chromium code review site | |
1049 .RS 4 | |
1050 \%https://codereview.chromium.org | |
1051 .RE | |
1052 .IP " 6." 4 | |
1053 main Chromium waterfall | |
1054 .RS 4 | |
1055 \%http://build.chromium.org | |
1056 .RE | |
1057 .IP " 7." 4 | |
1058 here | |
1059 .RS 4 | |
1060 \%https://chromium.googlesource.com/chromium/tools/depot_tools.git | |
1061 .RE | |
OLD | NEW |