From 8ea47477233c2f810c7310118f0a717e16ab940e Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Thu, 23 Jul 2009 20:49:22 +0200 Subject: add gbp-pq to examples Closes: #537212 --- examples/gbp-pq | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100755 examples/gbp-pq diff --git a/examples/gbp-pq b/examples/gbp-pq new file mode 100755 index 00000000..93ebc45f --- /dev/null +++ b/examples/gbp-pq @@ -0,0 +1,119 @@ +#!/bin/sh +# +# Convert a patch-queue branch into a patch series in debian/patches and vice +# versa. +# +# assumes you have your quilt patch queue for $branch on patch-queue/$branch +# +# See: https://honk.sigxcpu.org/piki/development/debian_packages_in_git/ + +is_patch_queue() +{ + local branch=$1 + + if expr $branch : patch-queue/ >/dev/null; then + return 0 + else + return 1 + fi +} + +pq_export() +{ + local branch=$1 + local pq="patch-queue/$branch" + + if is_patch_queue $branch; then + echo "On a patch-queue branch, can't redo patches." + return 1 + fi + + rm -f debian/patches/* + PATCHES=`git format-patch -N -o debian/patches $branch...$pq` + if [ -n "$PATCHES" ]; then + echo "Regenerationg patch queue in \"debian/patches\"." + > debian/patches/series + for PATCH in $PATCHES; do + # delete the first line (from sha1) and last two lines (git version + # info) of the patch file + sed -i -e '1d' -e 'N;$!P;$!D;$d' $PATCH + sed -i -e 's/^-- \n[0-9\.]+$//' $PATCH + echo $PATCH | sed -e 's%debian/patches/%%' >> debian/patches/series + done + git status -- debian/patches + else + echo "No patches on \"$pq\"." + fi +} + +pq_rebase() +{ + local branch=$1 + local pq="patch-queue/$branch" + + if ! is_patch_queue $branch; then + echo "Switching to \"$pq\"" + git checkout $pq + else + echo "Already on \"$branch\"" + fi + git rebase $branch +} + +pq_import() +{ + local branch=$1 + local pq="patch-queue/$branch" + local patches=debian/patches/ + + if is_patch_queue $branch; then + echo "Already on a patch-queue branch \"$branch\" - doing nothing." + return 1 + fi + + if [ ! -r ${patches}series ]; then + echo "Found no series file at \"$patches\"." + return 1 + fi + + if ! git checkout -b $pq; then + echo "Cannot create patch-queue branch \"$pq\"." + return 1 + fi + QUILT_PATCHES=$patches git quiltimport +} + +usage () +{ + cat <