aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/guilt/files/guilt-pop.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/guilt/files/guilt-pop.patch')
-rw-r--r--meta/recipes-devtools/guilt/files/guilt-pop.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/meta/recipes-devtools/guilt/files/guilt-pop.patch b/meta/recipes-devtools/guilt/files/guilt-pop.patch
new file mode 100644
index 0000000000..c26b324ccf
--- /dev/null
+++ b/meta/recipes-devtools/guilt/files/guilt-pop.patch
@@ -0,0 +1,71 @@
+guilt: pop and delete tags
+
+Add support for popping to a tag and the ability to delete
+a tag while popping from the tree
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+
+---
+ guilt-pop | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+--- a/guilt-pop
++++ b/guilt-pop
+@@ -17,6 +17,13 @@ while [ $# -gt 0 ]; do
+ -n)
+ num=t
+ ;;
++ -t|--t)
++ tag=$2
++ shift
++ ;;
++ -d|--d) # can only be used with --t
++ delete_tag=t
++ ;;
+ *)
+ break
+ ;;
+@@ -24,7 +31,7 @@ while [ $# -gt 0 ]; do
+ shift
+ done
+
+-# "guilt-pop" or "guilt-pop foo" or "guilt-pop -n foo"
++# "guilt-pop" or "guilt-pop foo" or "guilt-pop -n foo" or "guilt-pop -t <tag>"
+ if [ -z "$all" ] && [ $# -gt 1 ]; then
+ usage
+ fi
+@@ -44,12 +51,26 @@ fi
+ patch="$1"
+ [ ! -z "$all" ] && patch="-a"
+
++
++# tag processing will just roll into another one of
++# the pop types, number or patch name
++if [ ! -z "$tag" ]; then
++ git-rev-list HEAD ^$tag > /dev/null 2>/dev/null
++ if [ $? -eq 0 ]; then
++ revs="`git-rev-list HEAD ^$tag`"
++ num=`echo "$revs" | wc -l`
++ patch=$num
++ else
++ echo "Cannot find tag $tag";
++ exit 0
++ fi
++fi
++
+ if [ ! -s "$applied" ]; then
+ disp "No patches applied."
+ exit 0
+ elif [ "$patch" = "-a" ]; then
+ # we are supposed to pop all patches
+-
+ sidx=`wc -l < $applied`
+ eidx=0
+ elif [ ! -z "$num" ]; then
+@@ -96,3 +117,6 @@ pop_many_patches `git rev-parse refs/pat
+ p=`get_top`
+ [ ! -z "$p" ] && disp "Now at $p." || disp "All patches popped."
+
++if [ ! -z "$delete_tag" ]; then
++ git tag -d $tag
++fi;