On Wednesday 16 September 2009 02:30:52, Steven Rostedt wrote:
> I just updated my Debian distribution to find that quilt remove is no
> longer available. This is quite annoying. I see there is a quilt revert
> which is nice and useful, but it is by far no means a replacement for
> quilt remove.
>
> Please, do not replace a valuable operation with something that is not
> equivalent.
100% agreed! To work around this, I've been using quilt git + the
patch below, which blindly restores back the removed command from an
earlier revision. (I don't remember if I had to do any tweaks to
adjust it to recent changes though).
I've love to have this feature restored properly.
--
Pedro Alves
---
quilt/remove.in | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
Index: quilt/quilt/remove.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ quilt/quilt/remove.in 2009-06-24 00:40:43.000000000 +0100
@@ -0,0 +1,112 @@
+#! @BASH@
+
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# See the COPYING and AUTHORS files for more details.
+
+# Read in library functions
+if [ "$(type -t patch_file_name)" != function ]
+then
+ if ! [ -r $QUILT_DIR/scripts/patchfns ]
+ then
+ echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2
+ exit 1
+ fi
+ . $QUILT_DIR/scripts/patchfns
+fi
+
+usage()
+{
+ printf $"Usage: quilt remove [-P patch] {file} ...\n"
+ if [ x$1 = x-h ]
+ then
+ printf $"
+Remove one or more files from the topmost or named patch. Files that
+are modified by patches on top of the specified patch cannot be removed.
+
+-P patch
+ Remove named files from the named patch.
+"
+ exit 0
+ else
+ exit 1
+ fi
+}
+
+options=`getopt -o P:h -- "$@"`
+
+if [ $? -ne 0 ]
+then
+ usage
+fi
+
+eval set -- "$options"
+
+while true
+do
+ case "$1" in
+ -P)
+ opt_patch="$2"
+ shift 2 ;;
+ -h)
+ usage -h ;;
+ --)
+ shift
+ break ;;
+ esac
+done
+
+if [ $# -lt 1 ]
+then
+ usage
+fi
+
+patch=$(find_applied_patch "$opt_patch") || exit 1
+
+status=0
+for file in $*
+do
+ if ! file_in_patch $SUBDIR$file $patch
+ then
+ printf $"File %s is not in patch %s\n" \
+ "$SUBDIR$file" "$(print_patch $patch)" >&2
+ status=1
+ continue
+ fi
+
+ next_patch=$(next_patch_for_file $patch $SUBDIR$file)
+ if [ -n "$next_patch" ]
+ then
+ printf $"File %s modified by patch %s\n" \
+ "$SUBDIR$file" "$(print_patch $next_patch)"
+ status=1
+ continue
+ fi
+
+ # Restore file from backup
+ if ! $QUILT_LIB/backup-files -r -t -s -B $QUILT_PC/$patch/ $SUBDIR$file
+ then
+ printf $"Failed to remove file %s from patch %s\n" \
+ "$SUBDIR$file" "$(print_patch $patch)" >&2
+ status=1
+ continue
+ fi
+
+ if [ -e $(dirname $QUILT_PC/$patch~refresh) -a \
+ -e $(patch_file_name $patch) ]
+ then
+ # The patch must be refreshed in order to get rid of the
+ # patch permanently.
+ touch $QUILT_PC/$patch~refresh
+ fi
+
+ printf $"File %s removed from patch %s\n" \
+ "$SUBDIR$file" "$(print_patch $patch)"
+done
+exit $status
+### Local Variables:
+### mode: shell-script
+### End:
+# vim:filetype=sh
_______________________________________________
Quilt-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/quilt-dev