M7350/oe-core/meta/recipes-devtools/guilt/files/guilt-pop.patch
2024-09-09 08:52:07 +00:00

74 lines
1.7 KiB
Diff

guilt: pop and delete tags
Add support for popping to a tag and the ability to delete
a tag while popping from the tree
Upstream-Status: Inappropriate [oe-specific]
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;