Signed-off-by: Yann Dirson <ydirson@xxxxxxxxxx> --- contrib/stg-k | 32 ++++++++++++++++++++++++++++++++ contrib/stg-unnew | 15 +++++++++++++++ 2 files changed, 47 insertions(+), 0 deletions(-) diff --git a/contrib/stg-k b/contrib/stg-k new file mode 100755 index 0000000..0134c25 --- /dev/null +++ b/contrib/stg-k @@ -0,0 +1,32 @@ +#!/bin/sh +set -e + +# stg-k - execute given StGIT command while preserving local changes + +# Uses a temporary patch to save local changes, then execute the given +# command, and restore local changes from the saved patch. In +# essence, "stg-k pop" is a "stg pop -k" that works better, hence its +# name. + +# CAVEAT: this script relies on the operation to run ignoring hidden +# patches, so in 0.12 (where "stg push" can push an hidden patch) +# "stg-k push" will fail midway, albeit with no information loss - +# you'll just have to finish manually. Luckilly this appears to work +# on master branch. + +# Copyright (c) 2007 Yann Dirson <ydirson@xxxxxxxxxx> +# Subject to the GNU GPL, version 2. + +stg new __local -m " - local changes (internal patch)" +stg refresh +stg pop + +# avoid bad interactions like "stg-k push" not behaving as expected +stg hide __local + +stg "$@" + +stg unhide __local + +stg push __local +stg-unnew diff --git a/contrib/stg-unnew b/contrib/stg-unnew new file mode 100755 index 0000000..5ac8781 --- /dev/null +++ b/contrib/stg-unnew @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +# stg-unnew - sort of "reverse an 'stg new'" + +# Remove the current patch from the stack, keeping its contents as +# uncommitted changes. + +# Copyright (c) 2007 Yann Dirson <ydirson@xxxxxxxxxx> +# Subject to the GNU GPL, version 2. + +patch=$(stg top) +stg pop +stg pick --fold $patch +stg delete $patch - 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