Guilt v0.31 html docs
[guilt/mob.git] / guilt.html
blobcc57d394180cdec95b3912044c0165e0ec92a9ec
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="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.7" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
29 color: navy;
32 strong {
33 font-weight: bold;
34 color: #083194;
37 tt {
38 color: navy;
41 h1, h2, h3, h4, h5, h6 {
42 color: #527bbd;
43 font-family: sans-serif;
44 margin-top: 1.2em;
45 margin-bottom: 0.5em;
46 line-height: 1.3;
49 h1, h2, h3 {
50 border-bottom: 2px solid silver;
52 h2 {
53 padding-top: 0.5em;
55 h3 {
56 float: left;
58 h3 + * {
59 clear: left;
62 div.sectionbody {
63 font-family: serif;
64 margin-left: 0;
67 hr {
68 border: 1px solid silver;
71 p {
72 margin-top: 0.5em;
73 margin-bottom: 0.5em;
76 ul, ol, li > p {
77 margin-top: 0;
80 pre {
81 padding: 0;
82 margin: 0;
85 span#author {
86 color: #527bbd;
87 font-family: sans-serif;
88 font-weight: bold;
89 font-size: 1.1em;
91 span#email {
93 span#revision {
94 font-family: sans-serif;
97 div#footer {
98 font-family: sans-serif;
99 font-size: small;
100 border-top: 2px solid silver;
101 padding-top: 0.5em;
102 margin-top: 4.0em;
104 div#footer-text {
105 float: left;
106 padding-bottom: 0.5em;
108 div#footer-badges {
109 float: right;
110 padding-bottom: 0.5em;
113 div#preamble,
114 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
115 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
116 div.admonitionblock {
117 margin-right: 10%;
118 margin-top: 1.5em;
119 margin-bottom: 1.5em;
121 div.admonitionblock {
122 margin-top: 2.5em;
123 margin-bottom: 2.5em;
126 div.content { /* Block element content. */
127 padding: 0;
130 /* Block element titles. */
131 div.title, caption.title {
132 color: #527bbd;
133 font-family: sans-serif;
134 font-weight: bold;
135 text-align: left;
136 margin-top: 1.0em;
137 margin-bottom: 0.5em;
139 div.title + * {
140 margin-top: 0;
143 td div.title:first-child {
144 margin-top: 0.0em;
146 div.content div.title:first-child {
147 margin-top: 0.0em;
149 div.content + div.title {
150 margin-top: 0.0em;
153 div.sidebarblock > div.content {
154 background: #ffffee;
155 border: 1px solid silver;
156 padding: 0.5em;
159 div.listingblock {
160 margin-right: 0%;
162 div.listingblock > div.content {
163 border: 1px solid silver;
164 background: #f4f4f4;
165 padding: 0.5em;
168 div.quoteblock {
169 padding-left: 2.0em;
171 div.quoteblock > div.attribution {
172 padding-top: 0.5em;
173 text-align: right;
176 div.verseblock {
177 padding-left: 2.0em;
179 div.verseblock > div.content {
180 white-space: pre;
182 div.verseblock > div.attribution {
183 padding-top: 0.75em;
184 text-align: left;
186 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
187 div.verseblock + div.attribution {
188 text-align: left;
191 div.admonitionblock .icon {
192 vertical-align: top;
193 font-size: 1.1em;
194 font-weight: bold;
195 text-decoration: underline;
196 color: #527bbd;
197 padding-right: 0.5em;
199 div.admonitionblock td.content {
200 padding-left: 0.5em;
201 border-left: 2px solid silver;
204 div.exampleblock > div.content {
205 border-left: 2px solid silver;
206 padding: 0.5em;
209 div.imageblock div.content { padding-left: 0; }
210 div.imageblock img { border: 1px solid silver; }
211 span.image img { border-style: none; }
213 dl {
214 margin-top: 0.8em;
215 margin-bottom: 0.8em;
217 dt {
218 margin-top: 0.5em;
219 margin-bottom: 0;
220 font-style: normal;
222 dd > *:first-child {
223 margin-top: 0.1em;
226 ul, ol {
227 list-style-position: outside;
229 div.olist > ol {
230 list-style-type: decimal;
232 div.olist2 > ol {
233 list-style-type: lower-alpha;
236 div.tableblock > table {
237 border: 3px solid #527bbd;
239 thead {
240 font-family: sans-serif;
241 font-weight: bold;
243 tfoot {
244 font-weight: bold;
247 div.hlist {
248 margin-top: 0.8em;
249 margin-bottom: 0.8em;
251 div.hlist td {
252 padding-bottom: 15px;
254 td.hlist1 {
255 vertical-align: top;
256 font-style: normal;
257 padding-right: 0.8em;
259 td.hlist2 {
260 vertical-align: top;
263 @media print {
264 div#footer-badges { display: none; }
267 div#toctitle {
268 color: #527bbd;
269 font-family: sans-serif;
270 font-size: 1.1em;
271 font-weight: bold;
272 margin-top: 1.0em;
273 margin-bottom: 0.1em;
276 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
277 margin-top: 0;
278 margin-bottom: 0;
280 div.toclevel2 {
281 margin-left: 2em;
282 font-size: 0.9em;
284 div.toclevel3 {
285 margin-left: 4em;
286 font-size: 0.9em;
288 div.toclevel4 {
289 margin-left: 6em;
290 font-size: 0.9em;
292 /* Overrides for manpage documents */
293 h1 {
294 padding-top: 0.5em;
295 padding-bottom: 0.5em;
296 border-top: 2px solid silver;
297 border-bottom: 2px solid silver;
299 h2 {
300 border-style: none;
302 div.sectionbody {
303 margin-left: 5%;
306 @media print {
307 div#toc { display: none; }
310 /* Workarounds for IE6's broken and incomplete CSS2. */
312 div.sidebar-content {
313 background: #ffffee;
314 border: 1px solid silver;
315 padding: 0.5em;
317 div.sidebar-title, div.image-title {
318 color: #527bbd;
319 font-family: sans-serif;
320 font-weight: bold;
321 margin-top: 0.0em;
322 margin-bottom: 0.5em;
325 div.listingblock div.content {
326 border: 1px solid silver;
327 background: #f4f4f4;
328 padding: 0.5em;
331 div.quoteblock-attribution {
332 padding-top: 0.5em;
333 text-align: right;
336 div.verseblock-content {
337 white-space: pre;
339 div.verseblock-attribution {
340 padding-top: 0.75em;
341 text-align: left;
344 div.exampleblock-content {
345 border-left: 2px solid silver;
346 padding-left: 0.5em;
349 /* IE6 sets dynamically generated links as visited. */
350 div#toc a:visited { color: blue; }
352 /* Because IE6 child selector is broken. */
353 div.olist2 ol {
354 list-style-type: lower-alpha;
356 div.olist2 div.olist ol {
357 list-style-type: decimal;
359 </style>
360 <title>guilt(7)</title>
361 </head>
362 <body>
363 <div id="header">
364 <h1>
365 guilt(7) Manual Page
366 </h1>
367 <h2>NAME</h2>
368 <div class="sectionbody">
369 <p>guilt -
370 quilt on top of git
371 </p>
372 </div>
373 </div>
374 <h2>SYNOPSIS</h2>
375 <div class="sectionbody">
376 <div class="para"><p><em>guilt</em> COMMAND [ARGS]</p></div>
377 </div>
378 <h2 id="_description">DESCRIPTION</h2>
379 <div class="sectionbody">
380 <div class="para"><p>Andrew Morton originally developed a set of scripts for maintaining kernel
381 patches outside of any SCM tool. Others extended these into a suite called
382 quilt. The basic idea behind quilt is to maintain patches instead of
383 maintaining source files. Patches can be added, removed or reordered, and
384 they can be refreshed as you fix bugs or update to a new base revision.
385 quilt is very powerful, but it is not integrated with the underlying SCM
386 tools. This makes it difficult to visualize your changes.</p></div>
387 <div class="para"><p>Guilt allows one to use quilt functionality on top of a Git repository.
388 Changes are maintained as patches which are committed into Git. Commits can
389 be removed or reordered, and the underlying patch can be refreshed based on
390 changes made in the working directory. The patch directory can also be
391 placed under revision control, so you can have a separate history of changes
392 made to your patches.</p></div>
393 </div>
394 <h2 id="_patches_directory">PATCHES DIRECTORY</h2>
395 <div class="sectionbody">
396 <div class="para"><p>In Guilt, all the patches are stored in .git/patches/$branch/, where $branch
397 is the name of the branch being worked on. This means that one can have a
398 independent series of patches for each branch present in the repository.
399 Each of these per-branch directories contains 2 special files:</p></div>
400 <div class="para"><p>series: This file contains a list of all the patch filenames relative to the
401 per-branch patch directory. Empty and commented out lines are ignored.</p></div>
402 <div class="para"><p>status: This file contains the state of the stack. What patches are applied.</p></div>
403 </div>
404 <h2 id="_hooks">HOOKS</h2>
405 <div class="sectionbody">
406 <div class="para"><p>Any guilt operation may execute zero or more hook scripts which can be used
407 to run any houskeeping commands or even abort the execution of the command.</p></div>
408 </div>
409 <h2 id="_hooks_directory">HOOKS DIRECTORY</h2>
410 <div class="sectionbody">
411 <div class="para"><p>Guilt follows the same basic design of hooks in Git itself. All Guilt hooks
412 are executable files (generally shell scripts, but they can be anything the
413 operating system can execute) in .git/hooks/guilt/.</p></div>
414 <div class="para"><p>The following hooks are supported:</p></div>
415 <div class="vlist"><dl>
416 <dt>
417 delete &lt;patch name&gt;
418 </dt>
419 <dd>
421 Executed when a patch is deleted from the patch series via
422 <a href="guilt-delete.html">guilt-delete(1)</a>.
423 </p>
424 </dd>
425 </dl></div>
426 </div>
427 <h2 id="_autotagging">AUTOTAGGING</h2>
428 <div class="sectionbody">
429 <div class="para"><p>Autotagging is a feature that automatically creates unannotated tags for
430 top, bottom, and base of the stack.</p></div>
431 <div class="para"><p>On every push or pop operation (refresh is a pop followed by a push), Guilt</p></div>
432 <div class="hlist"><table>
433 <tr>
434 <td class="hlist1">
436 </td>
437 <td class="hlist2">
438 Top-most applied patch/commit
439 </td>
440 </tr>
441 <tr>
442 <td class="hlist1">
443 Bottom
444 </td>
445 <td class="hlist2">
446 Bottom-most applied patch/commit
447 </td>
448 </tr>
449 <tr>
450 <td class="hlist1">
451 Base
452 </td>
453 <td class="hlist2">
454 Commit on top of which the bottom most patch is applied
455 </td>
456 </tr>
457 </table></div>
458 <div class="para"><p>Having these three tags, one can easily get the log/diff/other information
459 only for commits that are (or are not!) part of the patch stack.</p></div>
460 <div class="para"><p>Since some users may not want to have Guilt autotag, a Git config setting
461 guilt.autotag can be used to turn it on or off.</p></div>
462 <div class="ilist"><ul>
463 <li>
465 If none of the config files (system, global, etc.) contain a guilt.autotag,
466 the feature defaults to being on.
467 </p>
468 </li>
469 <li>
471 If one or more config file contains the value, regular git-config(1) rules
472 apply.
473 </p>
474 </li>
475 </ul></div>
476 <div class="para"><p>During <a href="guilt-init.html">guilt-init(1)</a>, the rules are:</p></div>
477 <div class="ilist"><ul>
478 <li>
480 If none of the config files contain guilt.autotag, the repository config
481 file's guilt.autotag is set to the default (on).
482 </p>
483 </li>
484 <li>
486 If there already exists a setting in any of the config files, and neither
487 of the autotagging related options is used, no local value is set.
488 </p>
489 </li>
490 <li>
492 If there already exists a setting in any of the config files, but an
493 autotagging option is specified, the repository config file's guilt.autotag
494 is set to the value specified on the command line.
495 </p>
496 </li>
497 </ul></div>
498 </div>
499 <h2 id="_guilt_commands">GUILT COMMANDS</h2>
500 <div class="sectionbody">
501 <div class="para"><p>All commands can be called with or without a dash. e.g. <em>guilt add</em> or
502 <em>guilt-add</em></p></div>
503 <div class="vlist"><dl>
504 <dt>
505 <a href="guilt-add.html">guilt-add(1)</a>
506 </dt>
507 <dd>
509 guilt-add - Add a file to git and guilt.
510 </p>
511 </dd>
512 <dt>
513 <a href="guilt-applied.html">guilt-applied(1)</a>
514 </dt>
515 <dd>
517 guilt-applied - List applied patches.
518 </p>
519 </dd>
520 <dt>
521 <a href="guilt-branch.html">guilt-branch(1)</a>
522 </dt>
523 <dd>
525 guilt-branch - Branch the entire patch series.
526 </p>
527 </dd>
528 <dt>
529 <a href="guilt-commit.html">guilt-commit(1)</a>
530 </dt>
531 <dd>
533 guilt-commit - Commit specified number of patches.
534 </p>
535 </dd>
536 <dt>
537 <a href="guilt-delete.html">guilt-delete(1)</a>
538 </dt>
539 <dd>
541 guilt-delete - Delete a patch.
542 </p>
543 </dd>
544 <dt>
545 <a href="guilt-diff.html">guilt-diff(1)</a>
546 </dt>
547 <dd>
549 guilt-diff - Outputs various diffs.
550 </p>
551 </dd>
552 <dt>
553 <a href="guilt-export.html">guilt-export(1)</a>
554 </dt>
555 <dd>
557 guilt-export - Export a patch series (to be used by quilt).
558 </p>
559 </dd>
560 <dt>
561 <a href="guilt-files.html">guilt-files(1)</a>
562 </dt>
563 <dd>
565 guilt-files - Print the list of files that the topmost patch changes.
566 </p>
567 </dd>
568 <dt>
569 <a href="guilt-fold.html">guilt-fold(1)</a>
570 </dt>
571 <dd>
573 guilt-fold - Fold a specified patch into the topmost applied patch.
574 </p>
575 </dd>
576 <dt>
577 <a href="guilt-fork.html">guilt-fork(1)</a>
578 </dt>
579 <dd>
581 guilt-fork - Fork the topmost applied patch.
582 </p>
583 </dd>
584 <dt>
585 <a href="guilt-graph.html">guilt-graph(1)</a>
586 </dt>
587 <dd>
589 guilt-graph - Create a patch dependency graph.
590 </p>
591 </dd>
592 <dt>
593 <a href="guilt-header.html">guilt-header(1)</a>
594 </dt>
595 <dd>
597 guilt-header - Print a patch header.
598 </p>
599 </dd>
600 <dt>
601 <a href="guilt-help.html">guilt-help(1)</a>
602 </dt>
603 <dd>
605 guilt-help - open man page of a guilt command.
606 </p>
607 </dd>
608 <dt>
609 <a href="guilt-import-commit.html">guilt-import-commit(1)</a>
610 </dt>
611 <dd>
613 guilt-import-commit - Import one or more commits as patches.
614 </p>
615 </dd>
616 <dt>
617 <a href="guilt-import.html">guilt-import(1)</a>
618 </dt>
619 <dd>
621 guilt-import - Import specified patch file.
622 </p>
623 </dd>
624 <dt>
625 <a href="guilt-init.html">guilt-init(1)</a>
626 </dt>
627 <dd>
629 guilt-init - Initialize guilt for use in a git repository.
630 </p>
631 </dd>
632 <dt>
633 <a href="guilt-new.html">guilt-new(1)</a>
634 </dt>
635 <dd>
637 guilt-new - Create a new patch.
638 </p>
639 </dd>
640 <dt>
641 <a href="guilt-next.html">guilt-next(1)</a>
642 </dt>
643 <dd>
645 guilt-next - Output the name of next patch to be pushed.
646 </p>
647 </dd>
648 <dt>
649 <a href="guilt-patchbomb.html">guilt-patchbomb(1)</a>
650 </dt>
651 <dd>
653 guilt-patchbomb - Email a series of commits interactively.
654 </p>
655 </dd>
656 <dt>
657 <a href="guilt-pop.html">guilt-pop(1)</a>
658 </dt>
659 <dd>
661 guilt-pop - Pop patches from the tree.
662 </p>
663 </dd>
664 <dt>
665 <a href="guilt-prev.html">guilt-prev(1)</a>
666 </dt>
667 <dd>
669 guilt-prev - Output name of second topmost applied patch.
670 </p>
671 </dd>
672 <dt>
673 <a href="guilt-push.html">guilt-push(1)</a>
674 </dt>
675 <dd>
677 guilt-push - Push patches onto the tree.
678 </p>
679 </dd>
680 <dt>
681 <a href="guilt-rebase.html">guilt-rebase(1)</a>
682 </dt>
683 <dd>
685 guilt-rebase - Rebase pushed patches.
686 </p>
687 </dd>
688 <dt>
689 <a href="guilt-refresh.html">guilt-refresh(1)</a>
690 </dt>
691 <dd>
693 guilt-refresh - Refresh topmost applied patch.
694 </p>
695 </dd>
696 <dt>
697 <a href="guilt-repair.html">guilt-repair(1)</a>
698 </dt>
699 <dd>
701 guilt-repair - Repair the repository state.
702 </p>
703 </dd>
704 <dt>
705 <a href="guilt-rm.html">guilt-rm(1)</a>
706 </dt>
707 <dd>
709 guilt-rm - Remove a file from the git tree and guilt.
710 </p>
711 </dd>
712 <dt>
713 <a href="guilt-series.html">guilt-series(1)</a>
714 </dt>
715 <dd>
717 guilt-series - Print the stack of patches.
718 </p>
719 </dd>
720 <dt>
721 <a href="guilt-status.html">guilt-status(1)</a>
722 </dt>
723 <dd>
725 guilt-status - Print the status of files since the last refresh.
726 </p>
727 </dd>
728 <dt>
729 <a href="guilt-top.html">guilt-top(1)</a>
730 </dt>
731 <dd>
733 guilt-top - Output name of topmost applied patch.
734 </p>
735 </dd>
736 <dt>
737 <a href="guilt-unapplied.html">guilt-unapplied(1)</a>
738 </dt>
739 <dd>
741 guilt-unapplied - List all unapplied patches.
742 </p>
743 </dd>
744 </dl></div>
745 </div>
746 <h2 id="_author">Author</h2>
747 <div class="sectionbody">
748 <div class="para"><p>Written by Josef "Jeff" Sipek &lt;<a href="mailto:jeffpc@josefsipek.net">jeffpc@josefsipek.net</a>&gt;</p></div>
749 </div>
750 <h2 id="_documentation">Documentation</h2>
751 <div class="sectionbody">
752 <div class="para"><p>Documentation by Brandon Philips &lt;<a href="mailto:brandon@ifup.org">brandon@ifup.org</a>&gt; and Josef "Jeff" Sipek
753 &lt;<a href="mailto:jeffpc@josefsipek.net">jeffpc@josefsipek.net</a>&gt;</p></div>
754 </div>
755 <h2 id="_guilt">GUILT</h2>
756 <div class="sectionbody">
757 <div class="para"><p>Part of the <a href="guilt.html">guilt(7)</a> suite
758 (Generated for Guilt v0.31)</p></div>
759 </div>
760 <div id="footer">
761 <div id="footer-text">
762 Last updated 2008-09-05 18:34:58 EDT
763 </div>
764 </div>
765 </body>
766 </html>