NAME
guilt - quilt on top of git
SYNOPSIS
guilt COMMAND [ARGS]
DESCRIPTION
Andrew Morton originally developed a set of scripts for maintaining
kernel patches outside of any SCM tool. Others extended these into a
suite called quilt. The basic idea behind quilt is to maintain patches
instead of maintaining source files. Patches can be added, removed or
reordered, and they can be refreshed as you fix bugs or update to a new
base revision. quilt is very powerful, but it is not integrated with
the underlying SCM tools. This makes it difficult to visualize your
changes.
Guilt allows one to use quilt functionality on top of a Git repository.
Changes are maintained as patches which are committed into Git. Commits
can be removed or reordered, and the underlying patch can be refreshed
based on changes made in the working directory. The patch directory can
also be placed under revision control, so you can have a separate
history of changes made to your patches.
PATCHES DIRECTORY
In Guilt, all the patches are stored in .git/patches/$branch/, where
$branch is the name of the branch being worked on. This means that one
can have a independent series of patches for each branch present in the
repository. Each of these per-branch directories contains 3 special
files:
guards: This file contains any guards that should be applied to the
series when pushing. It is only present when guards are selected.
series: This file contains a list of all the patch filenames relative
to the per-branch patch directory. Empty and commented out lines are
ignored.
status: This file contains the state of the stack. What patches are
applied.
HOOKS
Any guilt operation may execute zero or more hook scripts which can be
used to run any housekeeping commands or even abort the execution of
the command.
HOOKS DIRECTORY
Guilt follows the same basic design of hooks in Git itself. All Guilt
hooks are executable files (generally shell scripts, but they can be
anything the operating system can execute) in .git/hooks/guilt/.
The following hooks are supported:
delete <patch name>
Executed when a patch is deleted from the patch series via
linkguilt:guilt-delete[1].
GUILT COMMANDS
All commands can be called with or without a dash. e.g. guilt add or
guilt-add
linkguilt:guilt-add[1]
guilt-add - Add a file to git and guilt.
linkguilt:guilt-applied[1]
guilt-applied - List applied patches.
linkguilt:guilt-branch[1]
guilt-branch - Branch the entire patch series.
linkguilt:guilt-commit[1]
guilt-commit - Commit specified number of patches.
linkguilt:guilt-delete[1]
guilt-delete - Delete a patch.
linkguilt:guilt-diff[1]
guilt-diff - Outputs various diffs.
linkguilt:guilt-export[1]
guilt-export - Export a patch series (to be used by quilt).
linkguilt:guilt-files[1]
guilt-files - Print the list of files that the topmost patch
changes.
linkguilt:guilt-fold[1]
guilt-fold - Fold a specified patch into the topmost applied patch.
linkguilt:guilt-fork[1]
guilt-fork - Fork the topmost applied patch.
linkguilt:guilt-graph[1]
guilt-graph - Create a patch dependency graph.
linkguilt:guilt-guard[1]
guilt-guard - Assign guards to patches.
linkguilt:guilt-header[1]
guilt-header - Print a patch header.
linkguilt:guilt-help[1]
guilt-help - open man page of a guilt command.
linkguilt:guilt-import-commit[1]
guilt-import-commit - Import one or more commits as patches.
linkguilt:guilt-import[1]
guilt-import - Import specified patch file.
linkguilt:guilt-init[1]
guilt-init - Initialize guilt for use in a git repository.
linkguilt:guilt-new[1]
guilt-new - Create a new patch.
linkguilt:guilt-next[1]
guilt-next - Output the name of next patch to be pushed.
linkguilt:guilt-patchbomb[1]
guilt-patchbomb - Email a series of commits interactively.
linkguilt:guilt-pop[1]
guilt-pop - Pop patches from the tree.
linkguilt:guilt-prev[1]
guilt-prev - Output name of second topmost applied patch.
linkguilt:guilt-push[1]
guilt-push - Push patches onto the tree.
linkguilt:guilt-rebase[1]
guilt-rebase - Rebase pushed patches.
linkguilt:guilt-refresh[1]
guilt-refresh - Refresh topmost applied patch.
linkguilt:guilt-repair[1]
guilt-repair - Repair the repository state.
linkguilt:guilt-rm[1]
guilt-rm - Remove a file from the git tree and guilt.
linkguilt:guilt-select[1]
guilt-select - Select guards to apply when pushing patches.
linkguilt:guilt-series[1]
guilt-series - Print the stack of patches.
linkguilt:guilt-status[1]
guilt-status - Print the status of files since the last refresh.
linkguilt:guilt-top[1]
guilt-top - Output name of topmost applied patch.
linkguilt:guilt-unapplied[1]
guilt-unapplied - List all unapplied patches.
AUTHOR
Written by Josef "Jeff" Sipek <jeffpc@josefsipek.net[1]>
DOCUMENTATION
Documentation by Brandon Philips <brandon@ifup.org[2]> and Josef "Jeff"
Sipek <jeffpc@josefsipek.net[1]>
GUILT
Part of the linkguilt:guilt[7] suite (Generated for Guilt v0.33)
NOTES
1. jeffpc@josefsipek.net
mailto:jeffpc@josefsipek.net
2. brandon@ifup.org
mailto:brandon@ifup.org