| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |
| 2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
| 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
| 4 <head> | |
| 5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /
> | |
| 6 <meta name="generator" content="AsciiDoc 8.6.9" /> | |
| 7 <title>depot_tools_tutorial(7)</title> | |
| 8 <style type="text/css"> | |
| 9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ | |
| 10 | |
| 11 /* Default font. */ | |
| 12 body { | |
| 13 font-family: Georgia,serif; | |
| 14 } | |
| 15 | |
| 16 /* Title font. */ | |
| 17 h1, h2, h3, h4, h5, h6, | |
| 18 div.title, caption.title, | |
| 19 thead, p.table.header, | |
| 20 #toctitle, | |
| 21 #author, #revnumber, #revdate, #revremark, | |
| 22 #footer { | |
| 23 font-family: Arial,Helvetica,sans-serif; | |
| 24 } | |
| 25 | |
| 26 body { | |
| 27 margin: 1em 5% 1em 5%; | |
| 28 } | |
| 29 | |
| 30 a { | |
| 31 color: blue; | |
| 32 text-decoration: underline; | |
| 33 } | |
| 34 a:visited { | |
| 35 color: fuchsia; | |
| 36 } | |
| 37 | |
| 38 em { | |
| 39 font-style: italic; | |
| 40 color: navy; | |
| 41 } | |
| 42 | |
| 43 strong { | |
| 44 font-weight: bold; | |
| 45 color: #083194; | |
| 46 } | |
| 47 | |
| 48 h1, h2, h3, h4, h5, h6 { | |
| 49 color: #527bbd; | |
| 50 margin-top: 1.2em; | |
| 51 margin-bottom: 0.5em; | |
| 52 line-height: 1.3; | |
| 53 } | |
| 54 | |
| 55 h1, h2, h3 { | |
| 56 border-bottom: 2px solid silver; | |
| 57 } | |
| 58 h2 { | |
| 59 padding-top: 0.5em; | |
| 60 } | |
| 61 h3 { | |
| 62 float: left; | |
| 63 } | |
| 64 h3 + * { | |
| 65 clear: left; | |
| 66 } | |
| 67 h5 { | |
| 68 font-size: 1.0em; | |
| 69 } | |
| 70 | |
| 71 div.sectionbody { | |
| 72 margin-left: 0; | |
| 73 } | |
| 74 | |
| 75 hr { | |
| 76 border: 1px solid silver; | |
| 77 } | |
| 78 | |
| 79 p { | |
| 80 margin-top: 0.5em; | |
| 81 margin-bottom: 0.5em; | |
| 82 } | |
| 83 | |
| 84 ul, ol, li > p { | |
| 85 margin-top: 0; | |
| 86 } | |
| 87 ul > li { color: #aaa; } | |
| 88 ul > li > * { color: black; } | |
| 89 | |
| 90 .monospaced, code, pre { | |
| 91 font-family: "Courier New", Courier, monospace; | |
| 92 font-size: inherit; | |
| 93 color: navy; | |
| 94 padding: 0; | |
| 95 margin: 0; | |
| 96 } | |
| 97 pre { | |
| 98 white-space: pre-wrap; | |
| 99 } | |
| 100 | |
| 101 #author { | |
| 102 color: #527bbd; | |
| 103 font-weight: bold; | |
| 104 font-size: 1.1em; | |
| 105 } | |
| 106 #email { | |
| 107 } | |
| 108 #revnumber, #revdate, #revremark { | |
| 109 } | |
| 110 | |
| 111 #footer { | |
| 112 font-size: small; | |
| 113 border-top: 2px solid silver; | |
| 114 padding-top: 0.5em; | |
| 115 margin-top: 4.0em; | |
| 116 } | |
| 117 #footer-text { | |
| 118 float: left; | |
| 119 padding-bottom: 0.5em; | |
| 120 } | |
| 121 #footer-badges { | |
| 122 float: right; | |
| 123 padding-bottom: 0.5em; | |
| 124 } | |
| 125 | |
| 126 #preamble { | |
| 127 margin-top: 1.5em; | |
| 128 margin-bottom: 1.5em; | |
| 129 } | |
| 130 div.imageblock, div.exampleblock, div.verseblock, | |
| 131 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, | |
| 132 div.admonitionblock { | |
| 133 margin-top: 1.0em; | |
| 134 margin-bottom: 1.5em; | |
| 135 } | |
| 136 div.admonitionblock { | |
| 137 margin-top: 2.0em; | |
| 138 margin-bottom: 2.0em; | |
| 139 margin-right: 10%; | |
| 140 color: #606060; | |
| 141 } | |
| 142 | |
| 143 div.content { /* Block element content. */ | |
| 144 padding: 0; | |
| 145 } | |
| 146 | |
| 147 /* Block element titles. */ | |
| 148 div.title, caption.title { | |
| 149 color: #527bbd; | |
| 150 font-weight: bold; | |
| 151 text-align: left; | |
| 152 margin-top: 1.0em; | |
| 153 margin-bottom: 0.5em; | |
| 154 } | |
| 155 div.title + * { | |
| 156 margin-top: 0; | |
| 157 } | |
| 158 | |
| 159 td div.title:first-child { | |
| 160 margin-top: 0.0em; | |
| 161 } | |
| 162 div.content div.title:first-child { | |
| 163 margin-top: 0.0em; | |
| 164 } | |
| 165 div.content + div.title { | |
| 166 margin-top: 0.0em; | |
| 167 } | |
| 168 | |
| 169 div.sidebarblock > div.content { | |
| 170 background: #ffffee; | |
| 171 border: 1px solid #dddddd; | |
| 172 border-left: 4px solid #f0f0f0; | |
| 173 padding: 0.5em; | |
| 174 } | |
| 175 | |
| 176 div.listingblock > div.content { | |
| 177 border: 1px solid #dddddd; | |
| 178 border-left: 5px solid #f0f0f0; | |
| 179 background: #f8f8f8; | |
| 180 padding: 0.5em; | |
| 181 } | |
| 182 | |
| 183 div.quoteblock, div.verseblock { | |
| 184 padding-left: 1.0em; | |
| 185 margin-left: 1.0em; | |
| 186 margin-right: 10%; | |
| 187 border-left: 5px solid #f0f0f0; | |
| 188 color: #888; | |
| 189 } | |
| 190 | |
| 191 div.quoteblock > div.attribution { | |
| 192 padding-top: 0.5em; | |
| 193 text-align: right; | |
| 194 } | |
| 195 | |
| 196 div.verseblock > pre.content { | |
| 197 font-family: inherit; | |
| 198 font-size: inherit; | |
| 199 } | |
| 200 div.verseblock > div.attribution { | |
| 201 padding-top: 0.75em; | |
| 202 text-align: left; | |
| 203 } | |
| 204 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ | |
| 205 div.verseblock + div.attribution { | |
| 206 text-align: left; | |
| 207 } | |
| 208 | |
| 209 div.admonitionblock .icon { | |
| 210 vertical-align: top; | |
| 211 font-size: 1.1em; | |
| 212 font-weight: bold; | |
| 213 text-decoration: underline; | |
| 214 color: #527bbd; | |
| 215 padding-right: 0.5em; | |
| 216 } | |
| 217 div.admonitionblock td.content { | |
| 218 padding-left: 0.5em; | |
| 219 border-left: 3px solid #dddddd; | |
| 220 } | |
| 221 | |
| 222 div.exampleblock > div.content { | |
| 223 border-left: 3px solid #dddddd; | |
| 224 padding-left: 0.5em; | |
| 225 } | |
| 226 | |
| 227 div.imageblock div.content { padding-left: 0; } | |
| 228 span.image img { border-style: none; vertical-align: text-bottom; } | |
| 229 a.image:visited { color: white; } | |
| 230 | |
| 231 dl { | |
| 232 margin-top: 0.8em; | |
| 233 margin-bottom: 0.8em; | |
| 234 } | |
| 235 dt { | |
| 236 margin-top: 0.5em; | |
| 237 margin-bottom: 0; | |
| 238 font-style: normal; | |
| 239 color: navy; | |
| 240 } | |
| 241 dd > *:first-child { | |
| 242 margin-top: 0.1em; | |
| 243 } | |
| 244 | |
| 245 ul, ol { | |
| 246 list-style-position: outside; | |
| 247 } | |
| 248 ol.arabic { | |
| 249 list-style-type: decimal; | |
| 250 } | |
| 251 ol.loweralpha { | |
| 252 list-style-type: lower-alpha; | |
| 253 } | |
| 254 ol.upperalpha { | |
| 255 list-style-type: upper-alpha; | |
| 256 } | |
| 257 ol.lowerroman { | |
| 258 list-style-type: lower-roman; | |
| 259 } | |
| 260 ol.upperroman { | |
| 261 list-style-type: upper-roman; | |
| 262 } | |
| 263 | |
| 264 div.compact ul, div.compact ol, | |
| 265 div.compact p, div.compact p, | |
| 266 div.compact div, div.compact div { | |
| 267 margin-top: 0.1em; | |
| 268 margin-bottom: 0.1em; | |
| 269 } | |
| 270 | |
| 271 tfoot { | |
| 272 font-weight: bold; | |
| 273 } | |
| 274 td > div.verse { | |
| 275 white-space: pre; | |
| 276 } | |
| 277 | |
| 278 div.hdlist { | |
| 279 margin-top: 0.8em; | |
| 280 margin-bottom: 0.8em; | |
| 281 } | |
| 282 div.hdlist tr { | |
| 283 padding-bottom: 15px; | |
| 284 } | |
| 285 dt.hdlist1.strong, td.hdlist1.strong { | |
| 286 font-weight: bold; | |
| 287 } | |
| 288 td.hdlist1 { | |
| 289 vertical-align: top; | |
| 290 font-style: normal; | |
| 291 padding-right: 0.8em; | |
| 292 color: navy; | |
| 293 } | |
| 294 td.hdlist2 { | |
| 295 vertical-align: top; | |
| 296 } | |
| 297 div.hdlist.compact tr { | |
| 298 margin: 0; | |
| 299 padding-bottom: 0; | |
| 300 } | |
| 301 | |
| 302 .comment { | |
| 303 background: yellow; | |
| 304 } | |
| 305 | |
| 306 .footnote, .footnoteref { | |
| 307 font-size: 0.8em; | |
| 308 } | |
| 309 | |
| 310 span.footnote, span.footnoteref { | |
| 311 vertical-align: super; | |
| 312 } | |
| 313 | |
| 314 #footnotes { | |
| 315 margin: 20px 0 20px 0; | |
| 316 padding: 7px 0 0 0; | |
| 317 } | |
| 318 | |
| 319 #footnotes div.footnote { | |
| 320 margin: 0 0 5px 0; | |
| 321 } | |
| 322 | |
| 323 #footnotes hr { | |
| 324 border: none; | |
| 325 border-top: 1px solid silver; | |
| 326 height: 1px; | |
| 327 text-align: left; | |
| 328 margin-left: 0; | |
| 329 width: 20%; | |
| 330 min-width: 100px; | |
| 331 } | |
| 332 | |
| 333 div.colist td { | |
| 334 padding-right: 0.5em; | |
| 335 padding-bottom: 0.3em; | |
| 336 vertical-align: top; | |
| 337 } | |
| 338 div.colist td img { | |
| 339 margin-top: 0.3em; | |
| 340 } | |
| 341 | |
| 342 @media print { | |
| 343 #footer-badges { display: none; } | |
| 344 } | |
| 345 | |
| 346 #toc { | |
| 347 margin-bottom: 2.5em; | |
| 348 } | |
| 349 | |
| 350 #toctitle { | |
| 351 color: #527bbd; | |
| 352 font-size: 1.1em; | |
| 353 font-weight: bold; | |
| 354 margin-top: 1.0em; | |
| 355 margin-bottom: 0.1em; | |
| 356 } | |
| 357 | |
| 358 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { | |
| 359 margin-top: 0; | |
| 360 margin-bottom: 0; | |
| 361 } | |
| 362 div.toclevel2 { | |
| 363 margin-left: 2em; | |
| 364 font-size: 0.9em; | |
| 365 } | |
| 366 div.toclevel3 { | |
| 367 margin-left: 4em; | |
| 368 font-size: 0.9em; | |
| 369 } | |
| 370 div.toclevel4 { | |
| 371 margin-left: 6em; | |
| 372 font-size: 0.9em; | |
| 373 } | |
| 374 | |
| 375 span.aqua { color: aqua; } | |
| 376 span.black { color: black; } | |
| 377 span.blue { color: blue; } | |
| 378 span.fuchsia { color: fuchsia; } | |
| 379 span.gray { color: gray; } | |
| 380 span.green { color: green; } | |
| 381 span.lime { color: lime; } | |
| 382 span.maroon { color: maroon; } | |
| 383 span.navy { color: navy; } | |
| 384 span.olive { color: olive; } | |
| 385 span.purple { color: purple; } | |
| 386 span.red { color: red; } | |
| 387 span.silver { color: silver; } | |
| 388 span.teal { color: teal; } | |
| 389 span.white { color: white; } | |
| 390 span.yellow { color: yellow; } | |
| 391 | |
| 392 span.aqua-background { background: aqua; } | |
| 393 span.black-background { background: black; } | |
| 394 span.blue-background { background: blue; } | |
| 395 span.fuchsia-background { background: fuchsia; } | |
| 396 span.gray-background { background: gray; } | |
| 397 span.green-background { background: green; } | |
| 398 span.lime-background { background: lime; } | |
| 399 span.maroon-background { background: maroon; } | |
| 400 span.navy-background { background: navy; } | |
| 401 span.olive-background { background: olive; } | |
| 402 span.purple-background { background: purple; } | |
| 403 span.red-background { background: red; } | |
| 404 span.silver-background { background: silver; } | |
| 405 span.teal-background { background: teal; } | |
| 406 span.white-background { background: white; } | |
| 407 span.yellow-background { background: yellow; } | |
| 408 | |
| 409 span.big { font-size: 2em; } | |
| 410 span.small { font-size: 0.6em; } | |
| 411 | |
| 412 span.underline { text-decoration: underline; } | |
| 413 span.overline { text-decoration: overline; } | |
| 414 span.line-through { text-decoration: line-through; } | |
| 415 | |
| 416 div.unbreakable { page-break-inside: avoid; } | |
| 417 | |
| 418 | |
| 419 /* | |
| 420 * xhtml11 specific | |
| 421 * | |
| 422 * */ | |
| 423 | |
| 424 div.tableblock { | |
| 425 margin-top: 1.0em; | |
| 426 margin-bottom: 1.5em; | |
| 427 } | |
| 428 div.tableblock > table { | |
| 429 border: 3px solid #527bbd; | |
| 430 } | |
| 431 thead, p.table.header { | |
| 432 font-weight: bold; | |
| 433 color: #527bbd; | |
| 434 } | |
| 435 p.table { | |
| 436 margin-top: 0; | |
| 437 } | |
| 438 /* Because the table frame attribute is overriden by CSS in most browsers. */ | |
| 439 div.tableblock > table[frame="void"] { | |
| 440 border-style: none; | |
| 441 } | |
| 442 div.tableblock > table[frame="hsides"] { | |
| 443 border-left-style: none; | |
| 444 border-right-style: none; | |
| 445 } | |
| 446 div.tableblock > table[frame="vsides"] { | |
| 447 border-top-style: none; | |
| 448 border-bottom-style: none; | |
| 449 } | |
| 450 | |
| 451 | |
| 452 /* | |
| 453 * html5 specific | |
| 454 * | |
| 455 * */ | |
| 456 | |
| 457 table.tableblock { | |
| 458 margin-top: 1.0em; | |
| 459 margin-bottom: 1.5em; | |
| 460 } | |
| 461 thead, p.tableblock.header { | |
| 462 font-weight: bold; | |
| 463 color: #527bbd; | |
| 464 } | |
| 465 p.tableblock { | |
| 466 margin-top: 0; | |
| 467 } | |
| 468 table.tableblock { | |
| 469 border-width: 3px; | |
| 470 border-spacing: 0px; | |
| 471 border-style: solid; | |
| 472 border-color: #527bbd; | |
| 473 border-collapse: collapse; | |
| 474 } | |
| 475 th.tableblock, td.tableblock { | |
| 476 border-width: 1px; | |
| 477 padding: 4px; | |
| 478 border-style: solid; | |
| 479 border-color: #527bbd; | |
| 480 } | |
| 481 | |
| 482 table.tableblock.frame-topbot { | |
| 483 border-left-style: hidden; | |
| 484 border-right-style: hidden; | |
| 485 } | |
| 486 table.tableblock.frame-sides { | |
| 487 border-top-style: hidden; | |
| 488 border-bottom-style: hidden; | |
| 489 } | |
| 490 table.tableblock.frame-none { | |
| 491 border-style: hidden; | |
| 492 } | |
| 493 | |
| 494 th.tableblock.halign-left, td.tableblock.halign-left { | |
| 495 text-align: left; | |
| 496 } | |
| 497 th.tableblock.halign-center, td.tableblock.halign-center { | |
| 498 text-align: center; | |
| 499 } | |
| 500 th.tableblock.halign-right, td.tableblock.halign-right { | |
| 501 text-align: right; | |
| 502 } | |
| 503 | |
| 504 th.tableblock.valign-top, td.tableblock.valign-top { | |
| 505 vertical-align: top; | |
| 506 } | |
| 507 th.tableblock.valign-middle, td.tableblock.valign-middle { | |
| 508 vertical-align: middle; | |
| 509 } | |
| 510 th.tableblock.valign-bottom, td.tableblock.valign-bottom { | |
| 511 vertical-align: bottom; | |
| 512 } | |
| 513 | |
| 514 | |
| 515 /* | |
| 516 * manpage specific | |
| 517 * | |
| 518 * */ | |
| 519 | |
| 520 body.manpage h1 { | |
| 521 padding-top: 0.5em; | |
| 522 padding-bottom: 0.5em; | |
| 523 border-top: 2px solid silver; | |
| 524 border-bottom: 2px solid silver; | |
| 525 } | |
| 526 body.manpage h2 { | |
| 527 border-style: none; | |
| 528 } | |
| 529 body.manpage div.sectionbody { | |
| 530 margin-left: 3em; | |
| 531 } | |
| 532 | |
| 533 @media print { | |
| 534 body.manpage div#toc { display: none; } | |
| 535 } | |
| 536 | |
| 537 | |
| 538 div.listingblock > div.content { | |
| 539 background: rgb(28, 28, 28); | |
| 540 } | |
| 541 | |
| 542 div.listingblock > div > pre > code { | |
| 543 color: rgb(187, 187, 187); | |
| 544 } | |
| 545 </style> | |
| 546 <script type="text/javascript"> | |
| 547 /*<+'])'); | |
| 590 // Function that scans the DOM tree for header elements (the DOM2 | |
| 591 // nodeIterator API would be a better technique but not supported by all | |
| 592 // browsers). | |
| 593 var iterate = function (el) { | |
| 594 for (var i = el.firstChild; i != null; i = i.nextSibling) { | |
| 595 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { | |
| 596 var mo = re.exec(i.tagName); | |
| 597 if (mo && (i.getAttribute("class") || i.getAttribute("className")) !=
"float") { | |
| 598 result[result.length] = new TocEntry(i, getText(i), mo[1]-1); | |
| 599 } | |
| 600 iterate(i); | |
| 601 } | |
| 602 } | |
| 603 } | |
| 604 iterate(el); | |
| 605 return result; | |
| 606 } | |
| 607 | |
| 608 var toc = document.getElementById("toc"); | |
| 609 if (!toc) { | |
| 610 return; | |
| 611 } | |
| 612 | |
| 613 // Delete existing TOC entries in case we're reloading the TOC. | |
| 614 var tocEntriesToRemove = []; | |
| 615 var i; | |
| 616 for (i = 0; i < toc.childNodes.length; i++) { | |
| 617 var entry = toc.childNodes[i]; | |
| 618 if (entry.nodeName.toLowerCase() == 'div' | |
| 619 && entry.getAttribute("class") | |
| 620 && entry.getAttribute("class").match(/^toclevel/)) | |
| 621 tocEntriesToRemove.push(entry); | |
| 622 } | |
| 623 for (i = 0; i < tocEntriesToRemove.length; i++) { | |
| 624 toc.removeChild(tocEntriesToRemove[i]); | |
| 625 } | |
| 626 | |
| 627 // Rebuild TOC entries. | |
| 628 var entries = tocEntries(document.getElementById("content"), toclevels); | |
| 629 for (var i = 0; i < entries.length; ++i) { | |
| 630 var entry = entries[i]; | |
| 631 if (entry.element.id == "") | |
| 632 entry.element.id = "_toc_" + i; | |
| 633 var a = document.createElement("a"); | |
| 634 a.href = "#" + entry.element.id; | |
| 635 a.appendChild(document.createTextNode(entry.text)); | |
| 636 var div = document.createElement("div"); | |
| 637 div.appendChild(a); | |
| 638 div.className = "toclevel" + entry.toclevel; | |
| 639 toc.appendChild(div); | |
| 640 } | |
| 641 if (entries.length == 0) | |
| 642 toc.parentNode.removeChild(toc); | |
| 643 }, | |
| 644 | |
| 645 | |
| 646 ///////////////////////////////////////////////////////////////////// | |
| 647 // Footnotes generator | |
| 648 ///////////////////////////////////////////////////////////////////// | |
| 649 | |
| 650 /* Based on footnote generation code from: | |
| 651 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html | |
| 652 */ | |
| 653 | |
| 654 footnotes: function () { | |
| 655 // Delete existing footnote entries in case we're reloading the footnodes. | |
| 656 var i; | |
| 657 var noteholder = document.getElementById("footnotes"); | |
| 658 if (!noteholder) { | |
| 659 return; | |
| 660 } | |
| 661 var entriesToRemove = []; | |
| 662 for (i = 0; i < noteholder.childNodes.length; i++) { | |
| 663 var entry = noteholder.childNodes[i]; | |
| 664 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") ==
"footnote") | |
| 665 entriesToRemove.push(entry); | |
| 666 } | |
| 667 for (i = 0; i < entriesToRemove.length; i++) { | |
| 668 noteholder.removeChild(entriesToRemove[i]); | |
| 669 } | |
| 670 | |
| 671 // Rebuild footnote entries. | |
| 672 var cont = document.getElementById("content"); | |
| 673 var spans = cont.getElementsByTagName("span"); | |
| 674 var refs = {}; | |
| 675 var n = 0; | |
| 676 for (i=0; i<spans.length; i++) { | |
| 677 if (spans[i].className == "footnote") { | |
| 678 n++; | |
| 679 var note = spans[i].getAttribute("data-note"); | |
| 680 if (!note) { | |
| 681 // Use [\s\S] in place of . so multi-line matches work. | |
| 682 // Because JavaScript has no s (dotall) regex flag. | |
| 683 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; | |
| 684 spans[i].innerHTML = | |
| 685 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + | |
| 686 "' title='View footnote' class='footnote'>" + n + "</a>]"; | |
| 687 spans[i].setAttribute("data-note", note); | |
| 688 } | |
| 689 noteholder.innerHTML += | |
| 690 "<div class='footnote' id='_footnote_" + n + "'>" + | |
| 691 "<a href='#_footnoteref_" + n + "' title='Return to text'>" + | |
| 692 n + "</a>. " + note + "</div>"; | |
| 693 var id =spans[i].getAttribute("id"); | |
| 694 if (id != null) refs["#"+id] = n; | |
| 695 } | |
| 696 } | |
| 697 if (n == 0) | |
| 698 noteholder.parentNode.removeChild(noteholder); | |
| 699 else { | |
| 700 // Process footnoterefs. | |
| 701 for (i=0; i<spans.length; i++) { | |
| 702 if (spans[i].className == "footnoteref") { | |
| 703 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); | |
| 704 href = href.match(/#.*/)[0]; // Because IE return full URL. | |
| 705 n = refs[href]; | |
| 706 spans[i].innerHTML = | |
| 707 "[<a href='#_footnote_" + n + | |
| 708 "' title='View footnote' class='footnote'>" + n + "</a>]"; | |
| 709 } | |
| 710 } | |
| 711 } | |
| 712 }, | |
| 713 | |
| 714 install: function(toclevels) { | |
| 715 var timerId; | |
| 716 | |
| 717 function reinstall() { | |
| 718 asciidoc.footnotes(); | |
| 719 if (toclevels) { | |
| 720 asciidoc.toc(toclevels); | |
| 721 } | |
| 722 } | |
| 723 | |
| 724 function reinstallAndRemoveTimer() { | |
| 725 clearInterval(timerId); | |
| 726 reinstall(); | |
| 727 } | |
| 728 | |
| 729 timerId = setInterval(reinstall, 500); | |
| 730 if (document.addEventListener) | |
| 731 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false
); | |
| 732 else | |
| 733 window.onload = reinstallAndRemoveTimer; | |
| 734 } | |
| 735 | |
| 736 } | |
| 737 asciidoc.install(); | |
| 738 /*]]>*/ | |
| 739 </script> | |
| 740 </head> | |
| 741 <body class="manpage"> | |
| 742 <div id="header"> | |
| 743 <h1> | |
| 744 depot_tools_tutorial(7) Manual Page | |
| 745 </h1> | |
| 746 <h2>NAME</h2> | |
| 747 <div class="sectionbody"> | |
| 748 <p>depot_tools_tutorial - | |
| 749 A tutorial introduction to the Chromium depot_tools git extensions. | |
| 750 </p> | |
| 751 </div> | |
| 752 </div> | |
| 753 <div id="content"> | |
| 754 <div class="sect1"> | |
| 755 <h2 id="_description">DESCRIPTION</h2> | |
| 756 <div class="sectionbody"> | |
| 757 <div class="paragraph"><p>The Chromium <a href="depot_tools.html">depot_tools(7)
</a> suite contains many git workflow-enhancing | |
| 758 tools which are designed to work together to enable anyone to wrangle the | |
| 759 Chromium codebase expertly. This tutorial explains how to do development on | |
| 760 Chromium using these tools. This will cover:</p></div> | |
| 761 <div class="ulist"><ul> | |
| 762 <li> | |
| 763 <p> | |
| 764 <a href="#_setting_up">Setting up</a> | |
| 765 </p> | |
| 766 </li> | |
| 767 <li> | |
| 768 <p> | |
| 769 <a href="#_getting_the_code">Getting the code</a> | |
| 770 </p> | |
| 771 </li> | |
| 772 <li> | |
| 773 <p> | |
| 774 <a href="#_tl_dr">TL;DR</a> | |
| 775 </p> | |
| 776 </li> | |
| 777 <li> | |
| 778 <p> | |
| 779 <a href="#_creating_uploading_a_cl">Creating / Uploading a CL</a> | |
| 780 </p> | |
| 781 </li> | |
| 782 <li> | |
| 783 <p> | |
| 784 <a href="#_updating_the_code">Updating the code</a> | |
| 785 </p> | |
| 786 </li> | |
| 787 <li> | |
| 788 <p> | |
| 789 <a href="#_managing_multiple_cls">Managing multiple CLs</a> | |
| 790 </p> | |
| 791 </li> | |
| 792 <li> | |
| 793 <p> | |
| 794 <a href="#_managing_dependent_cls">Managing dependent CLs</a> | |
| 795 </p> | |
| 796 </li> | |
| 797 <li> | |
| 798 <p> | |
| 799 <a href="#_example_walkthrough">Example Walkthrough</a> | |
| 800 </p> | |
| 801 </li> | |
| 802 </ul></div> | |
| 803 <div class="paragraph"><p>Please refer to the manpages (or <code>--help</code> o
utput) for details about any of the | |
| 804 commands mentioned in this tutorial.</p></div> | |
| 805 <div class="admonitionblock"> | |
| 806 <table><tr> | |
| 807 <td class="icon"> | |
| 808 <div class="title">Note</div> | |
| 809 </td> | |
| 810 <td class="content">If your platform does not support manpages (or you prefer so
mething a bit more | |
| 811 expressive than plain text) you can find all documentation in <em>html</em> form
in the | |
| 812 <code>[DEPOT_TOOLS]/docs/html</code> folder.</td> | |
| 813 </tr></table> | |
| 814 </div> | |
| 815 <div class="sect2"> | |
| 816 <h3 id="_prerequisites">PREREQUISITES</h3> | |
| 817 <div class="paragraph"><p>This tutorial assumes basic familiarity with git termi
nology and concepts. If you | |
| 818 need to brush up on these, the following are very good resources:</p></div> | |
| 819 <div class="ulist"><ul> | |
| 820 <li> | |
| 821 <p> | |
| 822 <a href="http://think-like-a-git.net/">Think like (a) Git</a> - A lighthearted | |
| 823 overview of git. If you’re sorta-familiar with git, but not <em>comforta
ble</em> with | |
| 824 it, then give this a look. | |
| 825 </p> | |
| 826 </li> | |
| 827 <li> | |
| 828 <p> | |
| 829 <a href="http://gitimmersion.com/">Git Immersion Tutorial</a> - An in-depth git | |
| 830 tutorial. | |
| 831 </p> | |
| 832 </li> | |
| 833 <li> | |
| 834 <p> | |
| 835 <a href="http://pcottle.github.io/learnGitBranching">pcottle’s Visual Git | |
| 836 Branching</a> - An excellent interactive/graphical demo on how git handles | |
| 837 commits, branches, and shows the operations git performs on them. | |
| 838 </p> | |
| 839 </li> | |
| 840 <li> | |
| 841 <p> | |
| 842 <a href="http://git-scm.com/book">Pro Git book</a> - “The” book for
learning git | |
| 843 from basics to advanced concepts. A bit dry, but very through. | |
| 844 </p> | |
| 845 </li> | |
| 846 </ul></div> | |
| 847 <div class="paragraph"><p>If you’ve tried these out and are still having s
ome trouble getting started, | |
| 848 there are <em>many</em> other resources online which should help. If you’r
e <em>really</em> | |
| 849 <strong><em>really</em></strong> stuck, then chat up one of the Chromium infrast
ructure team | |
| 850 members for some pointers.</p></div> | |
| 851 <div class="dlist"><dl> | |
| 852 <dt class="hdlist1"> | |
| 853 Litmus Test | |
| 854 </dt> | |
| 855 <dd> | |
| 856 <p> | |
| 857 If you know what <code>git add</code>, <code>git status</code>, <code>git comm
it</code> do and you know | |
| 858 <em>essentially</em> what <code>git rebase</code> does, then you should know e
nough to follow | |
| 859 along. | |
| 860 </p> | |
| 861 </dd> | |
| 862 </dl></div> | |
| 863 </div> | |
| 864 </div> | |
| 865 </div> | |
| 866 <div class="sect1"> | |
| 867 <h2 id="_setting_up">SETTING UP</h2> | |
| 868 <div class="sectionbody"> | |
| 869 <div class="sect2"> | |
| 870 <h3 id="_get_depot_tools">GET DEPOT TOOLS</h3> | |
| 871 <div class="sect3"> | |
| 872 <h4 id="_linux_mac">LINUX / MAC</h4> | |
| 873 <div class="paragraph"><p>Clone the <em>depot_tools</em> repository:</p></div> | |
| 874 <div class="listingblock"> | |
| 875 <div class="content"> | |
| 876 <pre><code><strong><span class="white">$ git clone https://chromium.googlesource
.com/chromium/tools/depot_tools</span></strong></code></pre> | |
| 877 </div></div> | |
| 878 <div class="paragraph"><p>Add <em>depot_tools</em> to the <em>end</em> of your P
ATH and MANPATH (you will probably want | |
| 879 to put this in your <code>~/.bashrc</code> or <code>~/.zshrc</code>). Assuming y
ou cloned | |
| 880 <em>depot_tools</em> to <code>/path/to/depot_tools</code>:</p></div> | |
| 881 <div class="listingblock"> | |
| 882 <div class="content"> | |
| 883 <pre><code><strong><span class="white">$ export PATH=$PATH:/path/to/depot_tools<
/span></strong> | |
| 884 <strong><span class="white">$ export MANPATH=$MANPATH:/path/to/depot_tools/docs<
/span></strong> <b><1></b></code></pre> | |
| 885 </div></div> | |
| 886 <div class="colist arabic"><ol> | |
| 887 <li> | |
| 888 <p> | |
| 889 Observe that this path is <code>depot_tools/</code><strong><code>docs</code></st
rong>. | |
| 890 </p> | |
| 891 </li> | |
| 892 </ol></div> | |
| 893 </div> | |
| 894 <div class="sect3"> | |
| 895 <h4 id="_windows">WINDOWS</h4> | |
| 896 <div class="paragraph"><p>Download the <em>depot_tools</em> | |
| 897 <a href="https://src.chromium.org/svn/trunk/tools/depot_tools.zip">bundle</a> an
d | |
| 898 extract it somewhere.</p></div> | |
| 899 <div class="admonitionblock"> | |
| 900 <table><tr> | |
| 901 <td class="icon"> | |
| 902 <div class="title">Warning</div> | |
| 903 </td> | |
| 904 <td class="content"><strong>DO NOT</strong> use drag-n-drop or copy-n-paste extr
act from Explorer, this will not | |
| 905 extract the hidden “.git” folder which is necessary for <em>depot_to
ols</em> to | |
| 906 autoupdate itself. You can use “Extract all…” from the context
menu though.</td> | |
| 907 </tr></table> | |
| 908 </div> | |
| 909 <div class="paragraph"><p>Add <em>depot_tools</em> to the <em>end</em> of your P
ATH. Assuming you unzipped the | |
| 910 bundle to <code>C:\workspace\depot_tools</code>:</p></div> | |
| 911 <div class="dlist"><dl> | |
| 912 <dt class="hdlist1"> | |
| 913 With Administrator access: | |
| 914 </dt> | |
| 915 <dd> | |
| 916 <p> | |
| 917 <strong>Control Panel → System and Security → System → Advan
ced system settings</strong> | |
| 918 </p> | |
| 919 <div class="paragraph"><p>Modify the PATH system variable to include <code>C:\wo
rkspace\depot_tools</code>.</p></div> | |
| 920 </dd> | |
| 921 <dt class="hdlist1"> | |
| 922 Without Administrator access: | |
| 923 </dt> | |
| 924 <dd> | |
| 925 <p> | |
| 926 <strong>Control Panel → User Accounts → User Accounts → Chan
ge my environment variables</strong> | |
| 927 </p> | |
| 928 <div class="paragraph"><p>Add a PATH user variable: <code>%PATH%;C:\workspace\de
pot_tools</code>.</p></div> | |
| 929 </dd> | |
| 930 </dl></div> | |
| 931 <div class="paragraph"><p>From a <code>cmd.exe</code> shell, run the command <co
de>gclient</code> (without arguments). On first | |
| 932 run, gclient will install all the Windows-specific bits needed to work with the | |
| 933 code, including msysgit and python.</p></div> | |
| 934 <div class="admonitionblock"> | |
| 935 <table><tr> | |
| 936 <td class="icon"> | |
| 937 <div class="title">Note</div> | |
| 938 </td> | |
| 939 <td class="content"> | |
| 940 <div class="ulist"><ul> | |
| 941 <li> | |
| 942 <p> | |
| 943 If you run gclient from a non-cmd shell (e.g., cygwin, PowerShell), it | |
| 944 may appear to run properly, but msysgit, python, and other tools may not get | |
| 945 installed correctly. | |
| 946 </p> | |
| 947 </li> | |
| 948 <li> | |
| 949 <p> | |
| 950 If you see strange errors with the file system on the first run of gclient, | |
| 951 you may want to <a href="http://tortoisesvn.tigris.org/faq.html#cantmove2">dis
able | |
| 952 Windows Indexing</a>. | |
| 953 </p> | |
| 954 </li> | |
| 955 <li> | |
| 956 <p> | |
| 957 If you are running Windows XP and see errors like “The system cannot execu
te | |
| 958 the specified program”, try installing the | |
| 959 <a href="http://code.google.com/p/chromium/issues/detail?id=75886">“Micr
osoft | |
| 960 Visual C++ 2008 Redistributable Package”</a>. | |
| 961 </p> | |
| 962 </li> | |
| 963 </ul></div> | |
| 964 </td> | |
| 965 </tr></table> | |
| 966 </div> | |
| 967 </div> | |
| 968 </div> | |
| 969 <div class="sect2"> | |
| 970 <h3 id="_bootstrapping_configuration">BOOTSTRAPPING CONFIGURATION</h3> | |
| 971 <div class="paragraph"><p>If you have never used git before, you’ll need to set
some global git | |
| 972 configurations; substitute your name and email address in the following | |
| 973 commands:</p></div> | |
| 974 <div class="listingblock"> | |
| 975 <div class="content"> | |
| 976 <pre><code><strong><span class="white">$ git config --global user.name “Jo
hn Doe”</span></strong> | |
| 977 <strong><span class="white">$ git config --global user.email “jdoe@email.c
om”</span></strong> | |
| 978 <strong><span class="white">$ git config --global core.autocrlf false</span></st
rong> | |
| 979 <strong><span class="white">$ git config --global core.filemode false</span></st
rong> | |
| 980 <strong><span class="white">$</span></strong> # and for fun! | |
| 981 <strong><span class="white">$ git config --global color.ui true</span></strong><
/code></pre> | |
| 982 </div></div> | |
| 983 </div> | |
| 984 </div> | |
| 985 </div> | |
| 986 <div class="sect1"> | |
| 987 <h2 id="_tl_dr">TL;DR</h2> | |
| 988 <div class="sectionbody"> | |
| 989 <div class="listingblock"> | |
| 990 <div class="content"> | |
| 991 <pre><code><strong><span class="white">$</span></strong> # get the code | |
| 992 <strong><span class="white">$</span></strong> # In an empty directory: | |
| 993 <strong><span class="white">$ fetch {chromium,blink,...}</span></strong> | |
| 994 | |
| 995 <strong><span class="white">$</span></strong> # Update third_party repos and run
pre-compile hooks | |
| 996 <strong><span class="white">$ gclient sync</span></strong> | |
| 997 | |
| 998 <strong><span class="white">$</span></strong> # Make a new change and upload it
for review | |
| 999 <strong><span class="white">$ git new-branch branchname</span></strong> | |
| 1000 <strong><span class="white">$</span></strong> # repeat: [edit, git add, git comm
it] | |
| 1001 <strong><span class="white">$ git cl upload</span></strong> | |
| 1002 | |
| 1003 <strong><span class="white">$</span></strong> # After change is reviewed, commit
with the CQ | |
| 1004 <strong><span class="white">$ git cl set_commit</span></strong> | |
| 1005 <strong><span class="white">$</span></strong> # Note that the committed hash whi
ch lands will /not/ match the | |
| 1006 <strong><span class="white">$</span></strong> # commit hashes of your local bran
ch.</code></pre> | |
| 1007 </div></div> | |
| 1008 </div> | |
| 1009 </div> | |
| 1010 <div class="sect1"> | |
| 1011 <h2 id="_getting_the_code">GETTING THE CODE</h2> | |
| 1012 <div class="sectionbody"> | |
| 1013 <div class="paragraph"><p>Pick an empty directory and run one of the following:<
/p></div> | |
| 1014 <div class="listingblock"> | |
| 1015 <div class="content"> | |
| 1016 <pre><code><strong><span class="white">$ fetch chromium</span></strong> # Basic
checkout for desktop Chromium | |
| 1017 <strong><span class="white">$ fetch blink</span></strong> # Chromium code wi
th Blink checked out to tip-of-tree | |
| 1018 <strong><span class="white">$ fetch android</span></strong> # Chromium checkou
t for Android platform | |
| 1019 <strong><span class="white">$ fetch ios</span></strong> # Chromium checkou
t for iOS platform</code></pre> | |
| 1020 </div></div> | |
| 1021 <div class="paragraph"><p>When the <code>fetch</code> tool completes you should
have the following in your working | |
| 1022 directory:</p></div> | |
| 1023 <div class="listingblock"> | |
| 1024 <div class="content"> | |
| 1025 <pre><code><strong><span class="white">.gclient</span></strong> # A configurat
ion file for you source checkout | |
| 1026 <strong><span class="white">src/</span></strong> # Top-level Chromium sour
ce checkout.</code></pre> | |
| 1027 </div></div> | |
| 1028 <div class="paragraph"><p>If you are on linux, then you’ll need to run:</p
></div> | |
| 1029 <div class="listingblock"> | |
| 1030 <div class="content"> | |
| 1031 <pre><code><strong><span class="white">$ cd src && ./build/install-build
-deps.sh</span></strong></code></pre> | |
| 1032 </div></div> | |
| 1033 <div class="paragraph"><p>And finally:</p></div> | |
| 1034 <div class="listingblock"> | |
| 1035 <div class="content"> | |
| 1036 <pre><code><strong><span class="white">$ gclient sync</span></strong></code></pr
e> | |
| 1037 </div></div> | |
| 1038 <div class="paragraph"><p>This will pull all dependencies of the Chromium src ch
eckout. You will need | |
| 1039 to run this any time you update the main src checkout.</p></div> | |
| 1040 </div> | |
| 1041 </div> | |
| 1042 <div class="sect1"> | |
| 1043 <h2 id="_creating_uploading_a_cl">CREATING / UPLOADING A CL</h2> | |
| 1044 <div class="sectionbody"> | |
| 1045 <div class="admonitionblock"> | |
| 1046 <table><tr> | |
| 1047 <td class="icon"> | |
| 1048 <div class="title">Note</div> | |
| 1049 </td> | |
| 1050 <td class="content">The remainder of the tutorial assumes that your current work
ing directory | |
| 1051 is the <code>src/</code> folder mentioned in <a href="#_getting_the_code">Gettin
g the code</a>.</td> | |
| 1052 </tr></table> | |
| 1053 </div> | |
| 1054 <div class="paragraph"><p>Each CL corresponds exactly with a single branch in gi
t. Any time you want to | |
| 1055 begin a new CL, just:</p></div> | |
| 1056 <div class="listingblock"> | |
| 1057 <div class="content"> | |
| 1058 <pre><code><strong><span class="white">$ git new-branch <branch_name></spa
n></strong></code></pre> | |
| 1059 </div></div> | |
| 1060 <div class="paragraph"><p>This will create and checkout a new branch named <code
>branch_name</code> which will track | |
| 1061 the default upstream (which is <code>origin/master</code>). See <a href="git-new
-branch.html">git-new-branch(1)</a> | |
| 1062 for more features, such as the ability to track <em>LKGR</em>.</p></div> | |
| 1063 <div class="paragraph"><p>Commit as many changes as you like to this branch. Whe
n you want to upload it | |
| 1064 for review, run:</p></div> | |
| 1065 <div class="listingblock"> | |
| 1066 <div class="content"> | |
| 1067 <pre><code><strong><span class="white">$ git cl upload</span></strong></code></p
re> | |
| 1068 </div></div> | |
| 1069 <div class="paragraph"><p>This will take the diff of your branch against its ups
tream (<code>origin/master</code>), | |
| 1070 and will post it to the <a href="https://codereview.chromium.org">Chromium code | |
| 1071 review site</a>.</p></div> | |
| 1072 </div> | |
| 1073 </div> | |
| 1074 <div class="sect1"> | |
| 1075 <h2 id="_updating_the_code">UPDATING THE CODE</h2> | |
| 1076 <div class="sectionbody"> | |
| 1077 <div class="paragraph"><p>Inevitably, you’ll want to pull in changes from
the main Chromium repo. This is | |
| 1078 pretty easy with <em>depot_tools</em>:</p></div> | |
| 1079 <div class="listingblock"> | |
| 1080 <div class="content"> | |
| 1081 <pre><code><strong><span class="white">$ git rebase-update</span></strong></code
></pre> | |
| 1082 </div></div> | |
| 1083 <div class="paragraph"><p>This command will update all of your CLs to contain th
e latest code from their | |
| 1084 upstreams. It will also automatically clean up CLs which have been committed and | |
| 1085 a couple other nice things. See <a href="git-rebase-update.html">git-rebase-upda
te(1)</a> for the full | |
| 1086 scoop.</p></div> | |
| 1087 <div class="paragraph"><p>One thing to look out for are <em>merge conflicts</em>
. These happen for exactly the | |
| 1088 same as they do with SVN, but the experience is a little more controllable with | |
| 1089 git. <code>git rebase-update</code> will try to rebase all your branches for you
, but if it | |
| 1090 encounters a merge conflict in one, it will halt and leave you in a rebase | |
| 1091 conflict state (see <a href="git-rebase.html">git-rebase(1)</a>). Resolving <cod
e>git rebase</code> merge | |
| 1092 conflicts is beyond the scope of this tutorial, but there are many good sources | |
| 1093 online (see the <a href="#_prerequisites">Prerequisites</a> for some).</p></div> | |
| 1094 <div class="paragraph"><p>Sometimes you’re pretty certain that you’v
e committed a certain branch, but <code>git | |
| 1095 rebase-update</code> isn’t able to tell that for sure. This is usually bec
ause your | |
| 1096 branch doesn’t rebase cleanly. You could just delete the branch with <code
>git branch | |
| 1097 -D <branch></code>, but you’d like to double check the diff of your
branch against its | |
| 1098 upstream before deleting it. If this is the case you can abort the rebase | |
| 1099 started by <code>git rebase-update</code>, and then run <a href="git-squash-bran
ch.html">git-squash-branch(1)</a> to | |
| 1100 flatten your branch into a single commit. When you run <code>git rebase-update</
code> | |
| 1101 again, you’ll get a (hopefully) much smaller / saner diff. If it turns out
you | |
| 1102 were wrong about your branch being fully committed, you can use | |
| 1103 <a href="git-reflog.html">git-reflog(1)</a> to reset your branch back to where i
t was before. If the | |
| 1104 diff looks inconsequential, you can use <code>git rebase --skip</code> to ignore
it, and | |
| 1105 then <code>git rebase-update</code> will clean it up for you.</p></div> | |
| 1106 <div class="paragraph"><p>Once you’re done resolving all of the merge conf
lict, just run <code>git | |
| 1107 rebase-update</code>, and it will pick up where it left off. Once the command ha
s | |
| 1108 finished updating all of your branches, it will return you back to the branch | |
| 1109 you started on.</p></div> | |
| 1110 <div class="admonitionblock"> | |
| 1111 <table><tr> | |
| 1112 <td class="icon"> | |
| 1113 <div class="title">Note</div> | |
| 1114 </td> | |
| 1115 <td class="content">Running <code>git rebase-update</code> will update all your
branches, but it will not | |
| 1116 automatically run <code>gclient sync</code> to update your dependencies.</td> | |
| 1117 </tr></table> | |
| 1118 </div> | |
| 1119 </div> | |
| 1120 </div> | |
| 1121 <div class="sect1"> | |
| 1122 <h2 id="_managing_multiple_cls">MANAGING MULTIPLE CLS</h2> | |
| 1123 <div class="sectionbody"> | |
| 1124 <div class="paragraph"><p>Sometimes you want to work on more than one CL at once
(say, you have a CL | |
| 1125 posted for review and want to work on something else). For each CL that you | |
| 1126 want to work on, just use <code>git new-branch <branchname></code>.</p></d
iv> | |
| 1127 <div class="paragraph"><p>Once you start to have more than one CL at a time, it
can be easy to lose your | |
| 1128 bearings. Fortunately, <em>depot_tools</em> has two tools to help you out:</p></
div> | |
| 1129 <div class="listingblock"> | |
| 1130 <div class="content"> | |
| 1131 <pre><code><strong><span class="white">$ git map</span></strong> | |
| 1132 <span class="white blue-background">*</span>​<strong><span class="blue-bac
kground red"> 7dcfe47 </span></strong> <span class="green">(</span>​
<strong><span class="aqua">frozen_changes</span></strong>​<span class="gre
en">)</span> <span class="yellow">2014-03-12</span> ~ FREEZE.unindexed | |
| 1133 * <strong><span class="red">4b0c180</span></strong> <span class="yellow">
2014-03-12</span> ~ modfile | |
| 1134 * <strong><span class="red">59a7cca</span></strong> <span class="yellow">
2014-03-12</span> ~ a deleted file | |
| 1135 * <strong><span class="red">6bec695</span></strong> <span class="green">(
</span>​<span class="red">origin/master</span>​<span class="green">)
</span> <span class="yellow">2014-03-11</span> ~ Add neat feature <strong><sp
an class="white"><(frozen_changes)</span></strong> | |
| 1136 * <strong><span class="red">d15a38a</span></strong> <span class="yellow">
2014-03-11</span> ~ Epic README update | |
| 1137 * <strong><span class="red">d559894</span></strong> <span class="green">(
</span>​<strong><span class="lime">master</span></strong>​<span clas
s="green">)</span> <span class="yellow">2014-03-11</span> ~ Important upstream c
hange | |
| 1138 <span class="red">|</span> * <strong><span class="red">9c311fd</span></strong>
<span class="green">(</span>​<strong><span class="lime">cool_feature</
span></strong>​<span class="green">)</span> <span class="yellow">2014-03-1
1</span> ~ Respond to CL comments | |
| 1139 <span class="red">|</span> <span class="green">|</span> * <strong><span class="r
ed">2a1eeb2</span></strong> <span class="green">(</span>​<strong><span
class="lime">subfeature</span></strong>​<span class="green">)</span> <span
class="yellow">2014-03-11</span> ~ integrate with CoolService | |
| 1140 <span class="red">|</span> <span class="green">|</span> * <strong><span class="r
ed">d777af6</span></strong> <span class="yellow">2014-03-11</span> ~ slick co
mmenting action | |
| 1141 <span class="red">|</span> <span class="green">|/</span> | |
| 1142 <span class="red">|</span> * <strong><span class="red">265803a</span></strong>
<span class="yellow">2014-03-11</span> ~ another improvement <strong><spa
n class="white"><(subfeature)</span></strong> | |
| 1143 <span class="red">|</span> * <strong><span class="red">6d831ac</span></strong>
<span class="green">(</span>​<strong><span class="fuchsia">spleen_tag<
/span></strong>​<span class="green">)</span> <span class="yellow">2014-03-
11</span> ~ Refactor spleen | |
| 1144 <span class="red">|</span> * <strong><span class="red">82e74ab</span></strong>
<span class="yellow">2014-03-11</span> ~ Add widget | |
| 1145 <span class="red">|/</span> | |
| 1146 * <strong><span class="red">d08c5b3</span></strong> <span class="green">(
</span>​<strong><span class="lime">bogus_noparent</span></strong>​<s
pan class="green">)</span> <span class="yellow">2014-03-11</span> ~ Wonderful be
ginnings <strong><span class="white"><(cool_feature)</span></strong></code
></pre> | |
| 1147 </div></div> | |
| 1148 <div class="paragraph"><p>Note that this example repo is in dire need of a <a hr
ef="git-rebase-update.html">git-rebase-update(1)</a>!</p></div> | |
| 1149 <div class="listingblock"> | |
| 1150 <div class="content"> | |
| 1151 <pre><code><strong><span class="white">$ git map-branches</span></strong> | |
| 1152 <span class="red">origin/master</span> | |
| 1153 <span class="green">cool_feature</span> | |
| 1154 <span class="green">subfeature</span> | |
| 1155 <span class="aqua">frozen_changes *</span> | |
| 1156 <span class="green">master</span></code></pre> | |
| 1157 </div></div> | |
| 1158 <div class="dlist"><dl> | |
| 1159 <dt class="hdlist1"> | |
| 1160 <a href="git-map.html">git-map(1)</a> | |
| 1161 </dt> | |
| 1162 <dd> | |
| 1163 <p> | |
| 1164 This tool shows you the history of all of your branches in a pseudo-graphical | |
| 1165 format. In particular, it will show you which commits all of your branches | |
| 1166 are on, which commit you currently have checked out, and more. Check out the | |
| 1167 doc for the full details. | |
| 1168 </p> | |
| 1169 </dd> | |
| 1170 <dt class="hdlist1"> | |
| 1171 <a href="git-map-branches.html">git-map-branches(1)</a> | |
| 1172 </dt> | |
| 1173 <dd> | |
| 1174 <p> | |
| 1175 This tool just shows you which branches you have in your repo, and thier | |
| 1176 upstream relationship to each other (as well as which branch you have checked | |
| 1177 out at the moment). | |
| 1178 </p> | |
| 1179 </dd> | |
| 1180 </dl></div> | |
| 1181 <div class="paragraph"><p>Additionally, sometimes you need to switch between bra
nches, but you’ve got work | |
| 1182 in progress. You could use <a href="git-stash.html">git-stash(1)</a>, but that c
an be tricky to | |
| 1183 manage because you need to remember which branches you stashed what changes on. | |
| 1184 Helpfully <em>depot_tools</em> includes two tools which can greatly assist in ca
se:</p></div> | |
| 1185 <div class="paragraph"><p><a href="git-freeze.html">git-freeze(1)</a> allows you
to put the current branch in 'suspended | |
| 1186 animation' by committing your changes to a specially-named commit on the top of | |
| 1187 your current branch. When you come back to your branch later, you can just run | |
| 1188 <a href="git-thaw.html">git-thaw(1)</a> to get your work-in-progress changes bac
k to what they were.</p></div> | |
| 1189 <div class="paragraph"><p>Another useful tool is <a href="git-rename-branch.html
">git-rename-branch(1)</a>. Unlike <code>git branch -m <old> | |
| 1190 <new></code>, this tool will correctly preserve the upstream relationships
of your | |
| 1191 branch compared to its downstreams.</p></div> | |
| 1192 <div class="paragraph"><p>Finally, take a look at <a href="git-upstream-diff.htm
l">git-upstream-diff(1)</a>. This will show you the | |
| 1193 combined diff for all the commits on your branch against the upstream tracking | |
| 1194 branch. This is <em>exactly</em> what <code>git cl upload</code> will push up to
code review. | |
| 1195 Additionally, consider trying the <code>--wordwise</code> argument to get a colo
rized | |
| 1196 per-word diff (instead of a per-line diff).</p></div> | |
| 1197 </div> | |
| 1198 </div> | |
| 1199 <div class="sect1"> | |
| 1200 <h2 id="_managing_dependent_cls">MANAGING DEPENDENT CLS</h2> | |
| 1201 <div class="sectionbody"> | |
| 1202 <div class="paragraph"><p>Now that you know how to manage <em>independent</em> C
Ls, we’ll see how to manage | |
| 1203 <em>dependent</em> CLs. Dependent CLs are useful when your second (or third or f
ourth | |
| 1204 or …) CL depends on the changes in one of your other CLs (such as: CL 2 wo
n’t | |
| 1205 compile without CL 1, but you want to submit them as two separate reviews).</p><
/div> | |
| 1206 <div class="paragraph"><p>Like all of the other CLs we’ve created, we use
<a href="git-new-branch.html">git-new-branch(1)</a>, but | |
| 1207 this time with an extra argument. First, <code>git checkout</code> the branch | |
| 1208 you want to base the new one on (i.e. CL 1), and then run:</p></div> | |
| 1209 <div class="listingblock"> | |
| 1210 <div class="content"> | |
| 1211 <pre><code><strong><span class="white">$ git new-branch --upstream_current <b
ranch_name></span></strong></code></pre> | |
| 1212 </div></div> | |
| 1213 <div class="paragraph"><p>This will make a new branch which tracks the <em>curre
nt</em> branch as its upstream | |
| 1214 (as opposed to <em>origin/master</em>). All changes you commit to this branch wi
ll be | |
| 1215 in addition to the previous branch, but when you <code>git cl upload</code>, you
will only | |
| 1216 upload the diff for the dependent (child) branch. You may have as many branches | |
| 1217 nested in this fashion as you like.</p></div> | |
| 1218 <div class="paragraph"><p><a href="git-map.html">git-map(1)</a> and <a href="git
-map-branches.html">git-map-branches(1)</a> are particularly helpful when | |
| 1219 you have dependent branches. In addition, there are two helper commands which | |
| 1220 let you traverse your working copy up and down this tree of branches: | |
| 1221 <a href="git-nav-upstream.html">git-nav-upstream(1)</a> and <a href="git-nav-dow
nstream.html">git-nav-downstream(1)</a>.</p></div> | |
| 1222 <div class="paragraph"><p>Sometimes when dealing with dependent CLs, it turns ou
t that you accidentally | |
| 1223 based a branch on the wrong upstream, but since then you’ve committed chan
ges to | |
| 1224 it, or even based <em>another</em> branch off of that one. Or you discover that
you | |
| 1225 have two independent CLs that would actually be much better off as dependent | |
| 1226 CLs. In instances like these, you can check out the offending branch and use | |
| 1227 <a href="git-reparent-branch.html">git-reparent-branch(1)</a> to move it to trac
k a different parent. Note that | |
| 1228 this can also be used to move a branch from tracking <code>origin/master</code>
to <code>lkgr</code> | |
| 1229 or vice versa.</p></div> | |
| 1230 </div> | |
| 1231 </div> | |
| 1232 <div class="sect1"> | |
| 1233 <h2 id="_example_walkthrough">EXAMPLE WALKTHROUGH</h2> | |
| 1234 <div class="sectionbody"> | |
| 1235 <div class="paragraph"><p>This section will demo what a typical workflow looks l
ike when writing, | |
| 1236 updating, and committing multiple CLs.</p></div> | |
| 1237 <div class="paragraph"><p></p></div><div class="listingblock"><div class="conten
t"><pre><code><span style="font-weight: bold; color: #ffffff">$ fetch chromium</
span> | |
| 1238 ... truncated output ... | |
| 1239 <span style="font-weight: bold; color: #ffffff">$ cd src</span> | |
| 1240 </code></pre></div></div><p><div class="paragraph"> (only on linux)</p></div><di
v class="listingblock"><div class="content"><pre><code><span style="font-weight:
bold; color: #ffffff">$ ./build/install-build-deps.sh</span> | |
| 1241 ... truncated output ... | |
| 1242 </code></pre></div></div><p><div class="paragraph"> Pull in all dependencies for
HEAD</p></div><div class="listingblock"><div class="content"><pre><code><span s
tyle="font-weight: bold; color: #ffffff">$ gclient sync</span> | |
| 1243 ... truncated output ... | |
| 1244 </code></pre></div></div><p><div class="paragraph"> Let's fix something!</p></di
v><div class="listingblock"><div class="content"><pre><code><span style="font-we
ight: bold; color: #ffffff">$ git new-branch fix_typo</span> | |
| 1245 <span style="font-weight: bold; color: #ffffff">$ echo -e '/Banana\ns/Banana/Kuu
n\nwq' | ed build/whitespace_file.txt</span> | |
| 1246 1503 | |
| 1247 It was a Domo-Banana. | |
| 1248 It was a Domo-Kuun. | |
| 1249 1501 | |
| 1250 <span style="font-weight: bold; color: #ffffff">$ git commit -am 'Fix terrible t
ypo.'</span> | |
| 1251 [fix_typo 615ffa7] Fix terrible typo. | |
| 1252 1 file changed, 1 insertion(+), 1 deletion(-) | |
| 1253 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1254 <span style="background-color: #492ee1"></span><span style="font-weight: bold; b
ackground-color: #492ee1">* </span><span style="font-weight: bold; color: #e42e1
6; background-color: #492ee1">615ffa7 </span><span style="color: #19c518"> (</
span><span style="color: #33d6e5"></span><span style="font-weight: bold; color:
#33d6e5">fix_typo</span><span style="font-weight: bold"></span><span style="font
-weight: bold"></span><span style="color: #19c518">) </span><span style="color:
#e7e71c">2014-04-10</span> ~ Fix terrible typo. | |
| 1255 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Make ReflectorImpl use mailboxes<span style="font-weight: bold"></span
><span style="font-weight: bold; color: #ffffff"> <(fix_typo)</span><span
style="font-weight: bold"></span><span style="font-weight: bold"></span> | |
| 1256 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1257 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1258 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1259 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1260 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1261 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1262 <span style="font-weight: bold; color: #ffffff">$ git status</span> | |
| 1263 On branch fix_typo | |
| 1264 Your branch is ahead of 'origin/master' by 1 commit. | |
| 1265 (use "git push" to publish your local commits) | |
| 1266 | |
| 1267 nothing to commit, working directory clean | |
| 1268 <span style="font-weight: bold; color: #ffffff">$ git cl upload -r domo@chromium
.org --send-mail</span> | |
| 1269 ... truncated output ... | |
| 1270 </code></pre></div></div><p><div class="paragraph"> While we wait for feedback,
let's do something else.</p></div><div class="listingblock"><div class="content"
><pre><code><span style="font-weight: bold; color: #ffffff">$ git new-branch cha
p2</span> | |
| 1271 <span style="font-weight: bold; color: #ffffff">$ git map-branches</span> | |
| 1272 <span style="color: #e42e16"></span><span style="font-weight: bold; color: #e42e
16">origin/master | |
| 1273 </span><span style="font-weight: bold; color: #33d6e5"></span><span style="font-
weight: bold; color: #33d6e5"> chap2 * | |
| 1274 </span><span style="font-weight: bold; color: #19c518"></span><span style="color
: #19c518"> fix_typo | |
| 1275 </span><span style="font-weight: bold; color: #ffffff">$ cat >> build/whit
espace_file.txt <<EOF</span> | |
| 1276 | |
| 1277 "You recall what happened on Mulholland drive?" The ceiling fan rotated slowly | |
| 1278 overhead, barely disturbing the thick cigarette smoke. No doubt was left about | |
| 1279 when the fan was last cleaned. | |
| 1280 EOF | |
| 1281 <span style="font-weight: bold; color: #ffffff">$ git status</span> | |
| 1282 On branch chap2 | |
| 1283 Your branch is up-to-date with 'origin/master'. | |
| 1284 | |
| 1285 Changes not staged for commit: | |
| 1286 (use "git add <file>..." to update what will be committed) | |
| 1287 (use "git checkout -- <file>..." to discard changes in working directory
) | |
| 1288 | |
| 1289 <span style="color: #e42e16">modified: build/whitespace_file.txt</span
> | |
| 1290 | |
| 1291 no changes added to commit (use "git add" and/or "git commit -a") | |
| 1292 </code></pre></div></div><p><div class="paragraph"> Someone on the code review p
ointed out that our typo-fix has a typo :( We're still working on 'chap2' but we
really want to land 'fix_typo', so let's switch over and fix it.</p></div><div
class="listingblock"><div class="content"><pre><code><span style="font-weight: b
old; color: #ffffff">$ git freeze</span> | |
| 1293 <span style="font-weight: bold; color: #ffffff">$ git checkout fix_typo</span> | |
| 1294 Switched to branch 'fix_typo' | |
| 1295 Your branch is ahead of 'origin/master' by 1 commit. | |
| 1296 (use "git push" to publish your local commits) | |
| 1297 <span style="font-weight: bold; color: #ffffff">$ echo -e '/Kuun\ns/Kuun/Kun\nwq
' | ed build/whitespace_file.txt</span> | |
| 1298 1501 | |
| 1299 It was a Domo-Kuun. | |
| 1300 It was a Domo-Kun. | |
| 1301 1500 | |
| 1302 <span style="font-weight: bold; color: #ffffff">$ git upstream-diff --wordwise</
span> | |
| 1303 <span style="font-weight: bold">diff --git a/build/whitespace_file.txt b/build/w
hitespace_file.txt</span> | |
| 1304 <span style="font-weight: bold">index 3eba355..57cdcee 100644</span> | |
| 1305 <span style="font-weight: bold">--- a/build/whitespace_file.txt</span> | |
| 1306 <span style="font-weight: bold">+++ b/build/whitespace_file.txt</span> | |
| 1307 <span style="color: #33d6e5">@@ -17,7 +17,7 @@</span> swept up the streets (for
it is in London that our scene lies), rattling along | |
| 1308 the housetops, and fiercely agitating the scanty flame of the lamps that | |
| 1309 struggled against the elements. A hooded figure emerged. | |
| 1310 | |
| 1311 It was a Domo-<span style="color: #e42e16">Banana</span><span style="color: #19c
518">Kun</span>. | |
| 1312 | |
| 1313 "What took you so long?", inquired his wife. | |
| 1314 | |
| 1315 <span style="font-weight: bold; color: #ffffff">$ git commit -am 'Fix typo for g
ood!'</span> | |
| 1316 [fix_typo 2c0ad9c] Fix typo for good! | |
| 1317 1 file changed, 1 insertion(+), 1 deletion(-) | |
| 1318 <span style="font-weight: bold; color: #ffffff">$ git cl upload</span> | |
| 1319 ... truncated output ... | |
| 1320 </code></pre></div></div><p><div class="paragraph"> Since we got lgtm, let the C
Q land it.</p></div><div class="listingblock"><div class="content"><pre><code><s
pan style="font-weight: bold; color: #ffffff">$ git cl set_commit</span> | |
| 1321 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1322 * <span style="font-weight: bold; color: #e42e16">0e2e52e </span><span sty
le="color: #19c518"> (</span><span style="color: #19c518"></span><span style="fo
nt-weight: bold; color: #19c518">chap2</span><span style="font-weight: bold"></s
pan><span style="font-weight: bold"></span><span style="color: #19c518">) </span
><span style="color: #e7e71c">2014-04-10</span> ~ FREEZE.unindexed | |
| 1323 <span style="color: #e42e16">|</span> <span style="background-color: #492ee1"></
span><span style="font-weight: bold; background-color: #492ee1">* </span><span s
tyle="font-weight: bold; color: #e42e16; background-color: #492ee1">2c0ad9c
</span><span style="color: #19c518"> (</span><span style="color: #33d6e5"></span
><span style="font-weight: bold; color: #33d6e5">fix_typo</span><span style="fon
t-weight: bold"></span><span style="font-weight: bold"></span><span style="color
: #19c518">) </span><span style="color: #e7e71c">2014-04-10</span> ~ Fix typo fo
r good! | |
| 1324 <span style="color: #e42e16">|</span> * <span style="font-weight: bold; color: #
e42e16">615ffa7 </span><span style="color: #19c518"></span> <span style="color:
#e7e71c">2014-04-10</span> ~ Fix terrible typo. | |
| 1325 <span style="color: #e42e16">|</span><span style="color: #e42e16">/</span> | |
| 1326 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Make ReflectorImpl use mailboxes<span style="font-weight: bold"></span
><span style="font-weight: bold; color: #ffffff"> <(chap2, fix_typo)</span
><span style="font-weight: bold"></span><span style="font-weight: bold"></span> | |
| 1327 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1328 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1329 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1330 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1331 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1332 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1333 </code></pre></div></div><p><div class="paragraph"> Switch back to where we were
using the nav* commands (for fun... git checkout would work here too)</p></div>
<div class="listingblock"><div class="content"><pre><code><span style="font-weig
ht: bold; color: #ffffff">$ git map-branches</span> | |
| 1334 <span style="color: #e42e16"></span><span style="color: #e42e16">origin/master | |
| 1335 </span><span style="color: #19c518"></span><span style="color: #19c518"> chap2 | |
| 1336 </span><span style="color: #33d6e5"></span><span style="font-weight: bold; color
: #33d6e5"> fix_typo * | |
| 1337 </span><span style="font-weight: bold; color: #ffffff">$ git nav-upstream</span> | |
| 1338 Note: checking out 'origin/master'. | |
| 1339 | |
| 1340 You are in 'detached HEAD' state. You can look around, make experimental | |
| 1341 changes and commit them, and you can discard any commits you make in this | |
| 1342 state without impacting any branches by performing another checkout. | |
| 1343 | |
| 1344 If you want to create a new branch to retain commits you create, you may | |
| 1345 do so (now or later) by using -b with the checkout command again. Example: | |
| 1346 | |
| 1347 git checkout -b new_branch_name | |
| 1348 | |
| 1349 HEAD is now at beec6f4... Make ReflectorImpl use mailboxes | |
| 1350 <span style="font-weight: bold; color: #ffffff">$ git nav-downstream</span> | |
| 1351 Please select a downstream branch | |
| 1352 0. chap2 | |
| 1353 1. fix_typo | |
| 1354 Selection (0-1)[0]: 0 | |
| 1355 Previous HEAD position was beec6f4... Make ReflectorImpl use mailboxes | |
| 1356 Switched to branch 'chap2' | |
| 1357 Your branch is ahead of 'origin/master' by 1 commit. | |
| 1358 (use "git push" to publish your local commits) | |
| 1359 <span style="font-weight: bold; color: #ffffff">$ git map-branches</span> | |
| 1360 <span style="color: #e42e16"></span><span style="color: #e42e16">origin/master | |
| 1361 </span><span style="color: #33d6e5"></span><span style="font-weight: bold; color
: #33d6e5"> chap2 * | |
| 1362 </span><span style="font-weight: bold; color: #19c518"></span><span style="color
: #19c518"> fix_typo | |
| 1363 </code></pre></div></div><p><div class="paragraph"> Now we can pick up on chapte
r2 where we left off.</p></div><div class="listingblock"><div class="content"><p
re><code></span><span style="font-weight: bold; color: #ffffff">$ git thaw</span
> | |
| 1364 <span style="font-weight: bold; color: #ffffff">$ git diff</span> | |
| 1365 <span style="font-weight: bold">diff --git a/build/whitespace_file.txt b/build/w
hitespace_file.txt</span> | |
| 1366 <span style="font-weight: bold">index 3eba355..9d08d9d 100644</span> | |
| 1367 <span style="font-weight: bold">--- a/build/whitespace_file.txt</span> | |
| 1368 <span style="font-weight: bold">+++ b/build/whitespace_file.txt</span> | |
| 1369 <span style="color: #33d6e5">@@ -34,3 +34,7 @@</span> with his fork, watching th
e runny jelly spread and pool across his plate, | |
| 1370 like the blood of a dying fawn. \"It reminds me of that time --\" he started, a
s | |
| 1371 his wife cut in quickly: \"-- please. I can't bear to hear it.\". A flury of | |
| 1372 images coming from the past flowed through his mind. | |
| 1373 <span style="color: #19c518">+</span> | |
| 1374 <span style="color: #19c518">+</span><span style="color: #19c518">"You recall wh
at happened on Mulholland drive?" The ceiling fan rotated slowly</span> | |
| 1375 <span style="color: #19c518">+</span><span style="color: #19c518">overhead, bare
ly disturbing the thick cigarette smoke. No doubt was left about</span> | |
| 1376 <span style="color: #19c518">+</span><span style="color: #19c518">when the fan w
as last cleaned.</span> | |
| 1377 <span style="font-weight: bold; color: #ffffff">$ cat >> build/whitespace_
file.txt <<EOF</span> | |
| 1378 | |
| 1379 There was an poignant pause. | |
| 1380 EOF | |
| 1381 <span style="font-weight: bold; color: #ffffff">$ git diff</span> | |
| 1382 <span style="font-weight: bold">diff --git a/build/whitespace_file.txt b/build/w
hitespace_file.txt</span> | |
| 1383 <span style="font-weight: bold">index 3eba355..e3a55de 100644</span> | |
| 1384 <span style="font-weight: bold">--- a/build/whitespace_file.txt</span> | |
| 1385 <span style="font-weight: bold">+++ b/build/whitespace_file.txt</span> | |
| 1386 <span style="color: #33d6e5">@@ -34,3 +34,9 @@</span> with his fork, watching th
e runny jelly spread and pool across his plate, | |
| 1387 like the blood of a dying fawn. \"It reminds me of that time --\" he started, a
s | |
| 1388 his wife cut in quickly: \"-- please. I can't bear to hear it.\". A flury of | |
| 1389 images coming from the past flowed through his mind. | |
| 1390 <span style="color: #19c518">+</span> | |
| 1391 <span style="color: #19c518">+</span><span style="color: #19c518">"You recall wh
at happened on Mulholland drive?" The ceiling fan rotated slowly</span> | |
| 1392 <span style="color: #19c518">+</span><span style="color: #19c518">overhead, bare
ly disturbing the thick cigarette smoke. No doubt was left about</span> | |
| 1393 <span style="color: #19c518">+</span><span style="color: #19c518">when the fan w
as last cleaned.</span> | |
| 1394 <span style="color: #19c518">+</span> | |
| 1395 <span style="color: #19c518">+</span><span style="color: #19c518">There was an p
oignant pause.</span> | |
| 1396 <span style="font-weight: bold; color: #ffffff">$ git commit -am 'Finish chapter
2'</span> | |
| 1397 [chap2 ceef712] Finish chapter 2 | |
| 1398 1 file changed, 6 insertions(+) | |
| 1399 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1400 <span style="background-color: #492ee1"></span><span style="font-weight: bold; b
ackground-color: #492ee1">* </span><span style="font-weight: bold; color: #e42e1
6; background-color: #492ee1">ceef712 </span><span style="color: #19c518"> (</
span><span style="color: #33d6e5"></span><span style="font-weight: bold; color:
#33d6e5">chap2</span><span style="font-weight: bold"></span><span style="font-we
ight: bold"></span><span style="color: #19c518">) </span><span style="color: #e7
e71c">2014-04-10</span> ~ Finish chapter 2 | |
| 1401 <span style="color: #e42e16">|</span> * <span style="font-weight: bold; color: #
e42e16">2c0ad9c </span><span style="color: #19c518"> (</span><span style="color:
#19c518"></span><span style="font-weight: bold; color: #19c518">fix_typo</span>
<span style="font-weight: bold"></span><span style="font-weight: bold"></span><s
pan style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10</spa
n> ~ Fix typo for good! | |
| 1402 <span style="color: #e42e16">|</span> * <span style="font-weight: bold; color: #
e42e16">615ffa7 </span><span style="color: #19c518"></span> <span style="color:
#e7e71c">2014-04-10</span> ~ Fix terrible typo. | |
| 1403 <span style="color: #e42e16">|</span><span style="color: #e42e16">/</span> | |
| 1404 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Make ReflectorImpl use mailboxes<span style="font-weight: bold"></span
><span style="font-weight: bold; color: #ffffff"> <(chap2, fix_typo)</span
><span style="font-weight: bold"></span><span style="font-weight: bold"></span> | |
| 1405 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1406 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1407 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1408 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1409 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1410 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1411 <span style="font-weight: bold; color: #ffffff">$ git cl upload -r domo@chromium
.org --send-mail</span> | |
| 1412 ... truncated output ... | |
| 1413 </code></pre></div></div><p><div class="paragraph"> We poke a committer until th
ey lgtm :)</p></div><div class="listingblock"><div class="content"><pre><code><s
pan style="font-weight: bold; color: #ffffff">$ git cl set_commit</span> | |
| 1414 </code></pre></div></div><p><div class="paragraph"> While that runs through the
CQ, let's get started on chapter 3. Since we know that chapter 3 depends on chap
ter 2, we'll track the current chapter2 branch.</p></div><div class="listingbloc
k"><div class="content"><pre><code><span style="font-weight: bold; color: #fffff
f">$ git new-branch --upstream_current chap3</span> | |
| 1415 <span style="font-weight: bold; color: #ffffff">$ cat >> build/whitespace_
file.txt <<EOF</span> | |
| 1416 | |
| 1417 CHAPTER 3: | |
| 1418 Mr. Usagi felt that something wasn't right. Shortly after the Domo-Kun left he | |
| 1419 began feeling sick. | |
| 1420 EOF | |
| 1421 <span style="font-weight: bold; color: #ffffff">$ git commit -am 'beginning of c
hapter 3'</span> | |
| 1422 [chap3 7d4238a] beginning of chapter 3 | |
| 1423 1 file changed, 4 insertions(+) | |
| 1424 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1425 <span style="background-color: #492ee1"></span><span style="font-weight: bold; b
ackground-color: #492ee1">* </span><span style="font-weight: bold; color: #e42e1
6; background-color: #492ee1">7d4238a </span><span style="color: #19c518"> (</
span><span style="color: #33d6e5"></span><span style="font-weight: bold; color:
#33d6e5">chap3</span><span style="font-weight: bold"></span><span style="font-we
ight: bold"></span><span style="color: #19c518">) </span><span style="color: #e7
e71c">2014-04-10</span> ~ beginning of chapter 3 | |
| 1426 * <span style="font-weight: bold; color: #e42e16">ceef712 </span><span sty
le="color: #19c518"> (</span><span style="color: #19c518"></span><span style="fo
nt-weight: bold; color: #19c518">chap2</span><span style="font-weight: bold"></s
pan><span style="font-weight: bold"></span><span style="color: #19c518">) </span
><span style="color: #e7e71c">2014-04-10</span> ~ Finish chapter 2<span style="f
ont-weight: bold"></span><span style="font-weight: bold; color: #ffffff"> <
;(chap3)</span><span style="font-weight: bold"></span><span style="font-weight:
bold"></span> | |
| 1427 <span style="color: #e42e16">|</span> * <span style="font-weight: bold; color: #
e42e16">2c0ad9c </span><span style="color: #19c518"> (</span><span style="color:
#19c518"></span><span style="font-weight: bold; color: #19c518">fix_typo</span>
<span style="font-weight: bold"></span><span style="font-weight: bold"></span><s
pan style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10</spa
n> ~ Fix typo for good! | |
| 1428 <span style="color: #e42e16">|</span> * <span style="font-weight: bold; color: #
e42e16">615ffa7 </span><span style="color: #19c518"></span> <span style="color:
#e7e71c">2014-04-10</span> ~ Fix terrible typo. | |
| 1429 <span style="color: #e42e16">|</span><span style="color: #e42e16">/</span> | |
| 1430 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Make ReflectorImpl use mailboxes<span style="font-weight: bold"></span
><span style="font-weight: bold; color: #ffffff"> <(chap2, fix_typo)</span
><span style="font-weight: bold"></span><span style="font-weight: bold"></span> | |
| 1431 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1432 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1433 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1434 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1435 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1436 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1437 </code></pre></div></div><p><div class="paragraph"> We haven't updated the code
in a while, so let's do that now.</p></div><div class="listingblock"><div class=
"content"><pre><code><span style="font-weight: bold; color: #ffffff">$ git rebas
e-update</span> | |
| 1438 Fetching origin | |
| 1439 From https://upstream | |
| 1440 beec6f4..59cdb73 master -> origin/master | |
| 1441 Rebasing: chap2 | |
| 1442 Rebasing: fix_typo | |
| 1443 Failed! Attempting to squash fix_typo ... Success! | |
| 1444 Rebasing: chap3 | |
| 1445 Deleted branch fix_typo (was 5d26fec). | |
| 1446 Reparented chap3 to track origin/master (was tracking chap2) | |
| 1447 Deleted branch chap2 (was 5d26fec). | |
| 1448 </code></pre></div></div><p><div class="paragraph"> Well look at that. The CQ la
nded our typo and chapter2 branches already and git rebase-update cleaned them
up for us.</p></div><div class="listingblock"><div class="content"><pre><code><s
pan style="font-weight: bold; color: #ffffff">$ gclient sync</span> | |
| 1449 ... truncated output ... | |
| 1450 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1451 <span style="background-color: #492ee1"></span><span style="font-weight: bold; b
ackground-color: #492ee1">* </span><span style="font-weight: bold; color: #e42e1
6; background-color: #492ee1">93fe917 </span><span style="color: #19c518"> (</
span><span style="color: #33d6e5"></span><span style="font-weight: bold; color:
#33d6e5">chap3</span><span style="font-weight: bold"></span><span style="font-we
ight: bold"></span><span style="color: #19c518">) </span><span style="color: #e7
e71c">2014-04-10</span> ~ beginning of chapter 3 | |
| 1452 * <span style="font-weight: bold; color: #e42e16">5d26fec </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Finish chapter 2<span style="font-weight: bold"></span><span style="fo
nt-weight: bold; color: #ffffff"> <(chap3)</span><span style="font-weight:
bold"></span><span style="font-weight: bold"></span> | |
| 1453 * <span style="font-weight: bold; color: #e42e16">df7fefb </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Rev
ert 255617, due to it not tracking use of the link doctor page properly. | |
| 1454 * <span style="font-weight: bold; color: #e42e16">4b39cda </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Fix
terrible typo. | |
| 1455 * <span style="font-weight: bold; color: #e42e16">248c5b6 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Tem
porarily CHECK(trial) in ChromeRenderProcessObserver::OnSetFieldTrialGroup. | |
| 1456 * <span style="font-weight: bold; color: #e42e16">8171df8 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Rem
ove AMD family check for the flapper crypto accelerator. | |
| 1457 * <span style="font-weight: bold; color: #e42e16">d6a30d2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Cha
nge the Pica load benchmark to listen for the polymer-ready event | |
| 1458 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Mak
e ReflectorImpl use mailboxes | |
| 1459 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1460 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1461 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1462 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1463 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1464 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1465 </code></pre></div></div><p><div class="paragraph"> Someone on IRC mentions that
they actually landed a chapter 3 already! We should pull their changes before c
ontinuing. Brace for a code conflict!</p></div><div class="listingblock"><div cl
ass="content"><pre><code><span style="font-weight: bold; color: #ffffff">$ git r
ebase-update</span> | |
| 1466 Fetching origin | |
| 1467 From https://upstream | |
| 1468 5d26fec..59cdb73 master -> origin/master | |
| 1469 Rebasing: chap2 | |
| 1470 ... lots of output, it's a conflict alright :(... | |
| 1471 <span style="font-weight: bold; color: #ffffff">$ git diff</span> | |
| 1472 <span style="font-weight: bold">diff --cc build/whitespace_file.txt</span> | |
| 1473 <span style="font-weight: bold">index 1293282,f903ea2..0000000</span> | |
| 1474 <span style="font-weight: bold">--- a/build/whitespace_file.txt</span> | |
| 1475 <span style="font-weight: bold">+++ b/build/whitespace_file.txt</span> | |
| 1476 <span style="color: #33d6e5">@@@ -42,4 -42,5 +42,9 @@@</span> when the fan was l
ast cleaned | |
| 1477 There was an poignant pause. | |
| 1478 | |
| 1479 CHAPTER 3: | |
| 1480 <span style="color: #19c518">++<<<<<<< HEAD</span> | |
| 1481 <span style="color: #19c518"> +Hilariousness! This chapter is awesome!</span> | |
| 1482 <span style="color: #19c518">++=======</span> | |
| 1483 <span style="color: #19c518">+ Mr. Usagi felt that something wasn't right. Short
ly after the Domo-Kun left he</span> | |
| 1484 <span style="color: #19c518">+ began feeling sick.</span> | |
| 1485 <span style="color: #19c518">++>>>>>>> beginning of chapter
3</span> | |
| 1486 </code></pre></div></div><p><div class="paragraph"> Oh, well, that's not too bad
. In fact... that's a terrible chapter 3!</p></div><div class="listingblock"><di
v class="content"><pre><code><span style="font-weight: bold; color: #ffffff">$ $
EDITOR build/whitespace_file.txt</span> | |
| 1487 ... /me deletes bad chapter 3 ... | |
| 1488 <span style="font-weight: bold; color: #ffffff">$ git add build/whitespace_file.
txt</span> | |
| 1489 <span style="font-weight: bold; color: #ffffff">$ git diff --cached</span> | |
| 1490 <span style="font-weight: bold">diff --git a/build/whitespace_file.txt b/build/w
hitespace_file.txt</span> | |
| 1491 <span style="font-weight: bold">index 1293282..f903ea2 100644</span> | |
| 1492 <span style="font-weight: bold">--- a/build/whitespace_file.txt</span> | |
| 1493 <span style="font-weight: bold">+++ b/build/whitespace_file.txt</span> | |
| 1494 <span style="color: #33d6e5">@@ -42,4 +42,5 @@</span> when the fan was last clea
ned. | |
| 1495 There was an poignant pause. | |
| 1496 | |
| 1497 CHAPTER 3: | |
| 1498 <span style="color: #e42e16">-Hilariousness! This chapter is awesome!</span> | |
| 1499 <span style="color: #19c518">+</span><span style="color: #19c518">Mr. Usagi felt
that something wasn't right. Shortly after the Domo-Kun left he</span> | |
| 1500 <span style="color: #19c518">+</span><span style="color: #19c518">began feeling
sick.</span> | |
| 1501 </code></pre></div></div><p><div class="paragraph"> Much better</p></div><div cl
ass="listingblock"><div class="content"><pre><code><span style="font-weight: bol
d; color: #ffffff">$ git rebase --continue</span> | |
| 1502 Applying: beginning of chapter 3 | |
| 1503 <span style="font-weight: bold; color: #ffffff">$ git rebase-update</span> | |
| 1504 Fetching origin | |
| 1505 chap3 up-to-date | |
| 1506 <span style="font-weight: bold; color: #ffffff">$ gclient sync</span> | |
| 1507 ... truncated output ... | |
| 1508 <span style="font-weight: bold; color: #ffffff">$ git map</span> | |
| 1509 <span style="background-color: #492ee1"></span><span style="font-weight: bold; b
ackground-color: #492ee1">* </span><span style="font-weight: bold; color: #e42e1
6; background-color: #492ee1">1cb4f5b </span><span style="color: #19c518"> (</
span><span style="color: #33d6e5"></span><span style="font-weight: bold; color:
#33d6e5">chap3</span><span style="font-weight: bold"></span><span style="font-we
ight: bold"></span><span style="color: #19c518">) </span><span style="color: #e7
e71c">2014-04-10</span> ~ beginning of chapter 3 | |
| 1510 * <span style="font-weight: bold; color: #e42e16">59cdb73 </span><span sty
le="color: #19c518"> (</span><span style="color: #e42e16">origin/master</span><s
pan style="color: #19c518">, </span><span style="color: #e42e16">origin/HEAD</sp
an><span style="color: #19c518">) </span><span style="color: #e7e71c">2014-04-10
</span> ~ Refactor data interchange format.<span style="font-weight: bold"></spa
n><span style="font-weight: bold; color: #ffffff"> <(chap3)</span><span st
yle="font-weight: bold"></span><span style="font-weight: bold"></span> | |
| 1511 * <span style="font-weight: bold; color: #e42e16">34676a3 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Ens
ure FS is exited for all not-in-same-page navigations. | |
| 1512 * <span style="font-weight: bold; color: #e42e16">7d4784e </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Add
best chapter2 ever! | |
| 1513 * <span style="font-weight: bold; color: #e42e16">5d26fec </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Fin
ish chapter 2 | |
| 1514 * <span style="font-weight: bold; color: #e42e16">df7fefb </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Rev
ert 255617, due to it not tracking use of the link doctor page properly. | |
| 1515 * <span style="font-weight: bold; color: #e42e16">4b39cda </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Fix
terrible typo. | |
| 1516 * <span style="font-weight: bold; color: #e42e16">248c5b6 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Tem
porarily CHECK(trial) in ChromeRenderProcessObserver::OnSetFieldTrialGroup. | |
| 1517 * <span style="font-weight: bold; color: #e42e16">8171df8 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Rem
ove AMD family check for the flapper crypto accelerator. | |
| 1518 * <span style="font-weight: bold; color: #e42e16">d6a30d2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Cha
nge the Pica load benchmark to listen for the polymer-ready event | |
| 1519 * <span style="font-weight: bold; color: #e42e16">beec6f4 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Mak
e ReflectorImpl use mailboxes | |
| 1520 * <span style="font-weight: bold; color: #e42e16">41290e0 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ don
't use glibc-specific execinfo.h on uclibc builds | |
| 1521 * <span style="font-weight: bold; color: #e42e16">a76fde7 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ [fs
p] Add requestUnmount() method together with the request manager. | |
| 1522 * <span style="font-weight: bold; color: #e42e16">9de7a71 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ lin
ux_aura: Use system configuration for middle clicking the titlebar. | |
| 1523 * <span style="font-weight: bold; color: #e42e16">073b0c2 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Con
tentView->ContentViewCore in ContentViewRenderView | |
| 1524 * <span style="font-weight: bold; color: #e42e16">2250f53 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ ozo
ne: evdev: Filter devices by path | |
| 1525 * <span style="font-weight: bold; color: #e42e16">33a7a74 </span><span sty
le="color: #19c518"></span> <span style="color: #e7e71c">2014-04-10</span> ~ Alw
ays output seccomp error messages to stderr | |
| 1526 <span style="font-weight: bold; color: #ffffff">$ git cl upload</span> | |
| 1527 ... truncated output ... | |
| 1528 </code></pre></div></div><p><div class="paragraph"></p></div> | |
| 1529 <div class="paragraph"><p>So there you have the basic flow. Note that you don
217;t <em>have</em> to do chromium | |
| 1530 development using these tools. Any git workflow is compatible, as long as | |
| 1531 <code>git cl upload</code> is able to upload good patches.</p></div> | |
| 1532 </div> | |
| 1533 </div> | |
| 1534 <div class="sect1"> | |
| 1535 <h2 id="_conclusion">CONCLUSION</h2> | |
| 1536 <div class="sectionbody"> | |
| 1537 <div class="paragraph"><p>Hopefully that gives you a good starting overview on C
hromium development using | |
| 1538 <em>depot_tools</em>. If you have questions which weren’t answered by this
tutorial or | |
| 1539 the man pages for the tools (see the index of all tools here: | |
| 1540 <a href="depot_tools.html">depot_tools(7)</a>), please feel free to ask.</p></di
v> | |
| 1541 </div> | |
| 1542 </div> | |
| 1543 <div class="sect1"> | |
| 1544 <h2 id="_glossary">GLOSSARY</h2> | |
| 1545 <div class="sectionbody"> | |
| 1546 <div class="dlist"><dl> | |
| 1547 <dt class="hdlist1"> | |
| 1548 CL | |
| 1549 </dt> | |
| 1550 <dd> | |
| 1551 <p> | |
| 1552 A <em>change-list</em>. This is a diff which you would like to commit to the | |
| 1553 codebase. | |
| 1554 </p> | |
| 1555 </dd> | |
| 1556 <dt class="hdlist1"> | |
| 1557 DEPS | |
| 1558 </dt> | |
| 1559 <dd> | |
| 1560 <p> | |
| 1561 A file in the chromium checkout which <code>gclient sync</code> uses to determ
ine what | |
| 1562 dependencies to pull in. This file also contains <em>hooks</em>. | |
| 1563 </p> | |
| 1564 </dd> | |
| 1565 <dt class="hdlist1"> | |
| 1566 LKGR | |
| 1567 </dt> | |
| 1568 <dd> | |
| 1569 <p> | |
| 1570 Last Known Good Revision. This is a <a href="git-tag.html">git-tag(1)</a> whic
h tracks the last | |
| 1571 version of <code>origin/master</code> which has passed the full set of testing
on the | |
| 1572 <a href="http://build.chromium.org">main Chromium waterfall</a>. | |
| 1573 </p> | |
| 1574 </dd> | |
| 1575 </dl></div> | |
| 1576 </div> | |
| 1577 </div> | |
| 1578 <div class="sect1"> | |
| 1579 <h2 id="_chromium_depot_tools">CHROMIUM DEPOT_TOOLS</h2> | |
| 1580 <div class="sectionbody"> | |
| 1581 <div class="paragraph"><p>Part of the chromium <a href="depot_tools.html">depot_
tools(7)</a> suite. These tools are meant to | |
| 1582 assist with the development of chromium and related projects. Download the tools | |
| 1583 from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
here</a>.</p></div> | |
| 1584 </div> | |
| 1585 </div> | |
| 1586 </div> | |
| 1587 <div id="footnotes"><hr /></div> | |
| 1588 <div id="footer"> | |
| 1589 <div id="footer-text"> | |
| 1590 Last updated 2014-04-14 16:26:14 PDT | |
| 1591 </div> | |
| 1592 </div> | |
| 1593 </body> | |
| 1594 </html> | |
| OLD | NEW |