1GUILT(7) Guilt Manual GUILT(7)
2
3
4
6 guilt - quilt on top of git
7
9 guilt COMMAND [ARGS]
10
12 Andrew Morton originally developed a set of scripts for maintaining
13 kernel patches outside of any SCM tool. Others extended these into a
14 suite called quilt. The basic idea behind quilt is to maintain patches
15 instead of maintaining source files. Patches can be added, removed or
16 reordered, and they can be refreshed as you fix bugs or update to a new
17 base revision. quilt is very powerful, but it is not integrated with
18 the underlying SCM tools. This makes it difficult to visualize your
19 changes.
20
21 Guilt allows one to use quilt functionality on top of a Git repository.
22 Changes are maintained as patches which are committed into Git. Commits
23 can be removed or reordered, and the underlying patch can be refreshed
24 based on changes made in the working directory. The patch directory can
25 also be placed under revision control, so you can have a separate
26 history of changes made to your patches.
27
29 In Guilt, all the patches are stored in .git/patches/$branch/, where
30 $branch is the name of the branch being worked on. This means that one
31 can have a independent series of patches for each branch present in the
32 repository. Each of these per-branch directories contains 3 special
33 files:
34
35 guards: This file contains any guards that should be applied to the
36 series when pushing. It is only present when guards are selected.
37
38 series: This file contains a list of all the patch filenames relative
39 to the per-branch patch directory. Empty and commented out lines are
40 ignored.
41
42 status: This file contains the state of the stack. What patches are
43 applied.
44
46 Any guilt operation may execute zero or more hook scripts which can be
47 used to run any housekeeping commands or even abort the execution of
48 the command.
49
51 Guilt follows the same basic design of hooks in Git itself. All Guilt
52 hooks are executable files (generally shell scripts, but they can be
53 anything the operating system can execute) in .git/hooks/guilt/.
54
55 The following hooks are supported:
56
57 delete <patch name>
58 Executed when a patch is deleted from the patch series via
59 linkguilt:guilt-delete[1].
60
62 All commands can be called with or without a dash. e.g. guilt add or
63 guilt-add
64
65 linkguilt:guilt-add[1]
66 guilt-add - Add a file to git and guilt.
67
68 linkguilt:guilt-applied[1]
69 guilt-applied - List applied patches.
70
71 linkguilt:guilt-branch[1]
72 guilt-branch - Branch the entire patch series.
73
74 linkguilt:guilt-commit[1]
75 guilt-commit - Commit specified number of patches.
76
77 linkguilt:guilt-delete[1]
78 guilt-delete - Delete a patch.
79
80 linkguilt:guilt-diff[1]
81 guilt-diff - Outputs various diffs.
82
83 linkguilt:guilt-export[1]
84 guilt-export - Export a patch series (to be used by quilt).
85
86 linkguilt:guilt-files[1]
87 guilt-files - Print the list of files that the topmost patch
88 changes.
89
90 linkguilt:guilt-fold[1]
91 guilt-fold - Fold a specified patch into the topmost applied patch.
92
93 linkguilt:guilt-fork[1]
94 guilt-fork - Fork the topmost applied patch.
95
96 linkguilt:guilt-graph[1]
97 guilt-graph - Create a patch dependency graph.
98
99 linkguilt:guilt-guard[1]
100 guilt-guard - Assign guards to patches.
101
102 linkguilt:guilt-header[1]
103 guilt-header - Print a patch header.
104
105 linkguilt:guilt-help[1]
106 guilt-help - open man page of a guilt command.
107
108 linkguilt:guilt-import-commit[1]
109 guilt-import-commit - Import one or more commits as patches.
110
111 linkguilt:guilt-import[1]
112 guilt-import - Import specified patch file.
113
114 linkguilt:guilt-init[1]
115 guilt-init - Initialize guilt for use in a git repository.
116
117 linkguilt:guilt-new[1]
118 guilt-new - Create a new patch.
119
120 linkguilt:guilt-next[1]
121 guilt-next - Output the name of next patch to be pushed.
122
123 linkguilt:guilt-patchbomb[1]
124 guilt-patchbomb - Email a series of commits interactively.
125
126 linkguilt:guilt-pop[1]
127 guilt-pop - Pop patches from the tree.
128
129 linkguilt:guilt-prev[1]
130 guilt-prev - Output name of second topmost applied patch.
131
132 linkguilt:guilt-push[1]
133 guilt-push - Push patches onto the tree.
134
135 linkguilt:guilt-rebase[1]
136 guilt-rebase - Rebase pushed patches.
137
138 linkguilt:guilt-refresh[1]
139 guilt-refresh - Refresh topmost applied patch.
140
141 linkguilt:guilt-repair[1]
142 guilt-repair - Repair the repository state.
143
144 linkguilt:guilt-rm[1]
145 guilt-rm - Remove a file from the git tree and guilt.
146
147 linkguilt:guilt-select[1]
148 guilt-select - Select guards to apply when pushing patches.
149
150 linkguilt:guilt-series[1]
151 guilt-series - Print the stack of patches.
152
153 linkguilt:guilt-status[1]
154 guilt-status - Print the status of files since the last refresh.
155
156 linkguilt:guilt-top[1]
157 guilt-top - Output name of topmost applied patch.
158
159 linkguilt:guilt-unapplied[1]
160 guilt-unapplied - List all unapplied patches.
161
163 Written by Josef "Jeff" Sipek <jeffpc@josefsipek.net[1]>
164
166 Documentation by Brandon Philips <brandon@ifup.org[2]> and Josef "Jeff"
167 Sipek <jeffpc@josefsipek.net[1]>
168
170 Part of the linkguilt:guilt[7] suite (Generated for Guilt v0.33)
171
173 1. jeffpc@josefsipek.net
174 mailto:jeffpc@josefsipek.net
175
176 2. brandon@ifup.org
177 mailto:brandon@ifup.org
178
179
180
181Guilt v0.33 04/16/2010 GUILT(7)