guilt-select chooses guards that alter which patches will be applied with a guilt-push. The selected guards are stored in .git/patches/$branch/guards. Signed-off-by: Eric Lesh <eclesh@xxxxxxxx> --- Documentation/guilt-select.txt | 42 ++++++++++++++++++++++++++++++++++++++++ guilt | 1 + guilt-select | 36 ++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 0 deletions(-) create mode 100644 Documentation/guilt-select.txt create mode 100755 guilt-select diff --git a/Documentation/guilt-select.txt b/Documentation/guilt-select.txt new file mode 100644 index 0000000..8e18f26 --- /dev/null +++ b/Documentation/guilt-select.txt @@ -0,0 +1,42 @@ +guilt-select(1) +=============== + +NAME +---- +guilt-select - Select guards to apply when pushing patches + +SYNOPSIS +-------- +include::usage-guilt-select.txt[] + +DESCRIPTION +----------- +Select guards to apply when pushing patches. + +Guards are selected without the + or - prefix. Patches are applied in +the following way: + +An unguarded patch is always applied. + +A patch with a positive guard is applied *only* if the guard is +selected with guilt-select. + +A patch with a negative guard is applied *unless* the guard is +selected with guilt-select. + +OPTIONS +------- +-n|--none:: + Remove all selected guards +-s|--series:: + List all guards listed in the series file + +Author +------ +Written by Eric Lesh <eclesh@xxxxxxxx> + +Documentation +------------- +Documentation by Eric Lesh <eclesh@xxxxxxxx> + +include::footer.txt[] diff --git a/guilt b/guilt index b2767ea..3882962 100755 --- a/guilt +++ b/guilt @@ -641,6 +641,7 @@ fi # very useful files series="$GUILT_DIR/$branch/series" applied="$GUILT_DIR/$branch/status" +guards_file="$GUILT_DIR/$branch/guards" # determine an editor to use for anything interactive (fall back to vi) editor="vi" diff --git a/guilt-select b/guilt-select new file mode 100755 index 0000000..f237ef0 --- /dev/null +++ b/guilt-select @@ -0,0 +1,36 @@ +#!/bin/sh +# +# Copyright (c) Eric Lesh, 2007 +# + +USAGE="[-n|--none] [-s|--series] [<guard>]" + . `dirname $0`/guilt + +if [ $# == 0 ]; then + if [ -s "$guards_file" ]; then + cat "$guards_file" + else + echo "No guards applied" + fi + exit 0 +fi + +case $1 in + -n|--none) + rm -f "$guards_file" + touch "$guards_file" + ;; + -s|--series) + (get_series | while read patch; do + get_guards "$patch" + done) | sed -e 's/ /\n/g' | sort | uniq + ;; + *) + for x in "$@"; do + if [ $(echo $x | grep -e "^[+-]") ]; then + die "'$x' is not a valid guard name" + fi + done + echo "$@" | sed -e 's/ /\n/g' | sort | uniq > "$guards_file" + ;; +esac -- 1.5.2 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html