chiark / gitweb /
Add -O flag to stg-fold-files-from.
authorYann Dirson <yann.dirson@sagem.com>
Mon, 20 Aug 2007 21:35:59 +0000 (22:35 +0100)
committerCatalin Marinas <catalin.marinas@gmail.com>
Mon, 20 Aug 2007 21:36:32 +0000 (22:36 +0100)
Signed-off-by: Yann Dirson <ydirson@altern.org>
contrib/stg-fold-files-from

index 53d3d0224ceeb0e1c71ae4e604e4a53f9d53c775..806a1576d7b3806b22b8c5c1eccfa4568082df5e 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 set -e
 
 # stg-fold-files-from - picks changes to one file from another patch.
@@ -6,8 +6,9 @@ set -e
 # of hunks from the file, using the -# flag to filterdiff.
 # Use together with "filterdiff --annotate" in your diff pager, to
 # identify hunk numbers easily.
+# Use "-O -U<n>" to get finer hunk granularity for -#<n>.
 
-# usage: stg-fold-files-from <patch> [-#<n>[-<n>][,<n>]...] <file-pattern>
+# usage: stg-fold-files-from <patch> [-O <stg-show-flags>] [-#<n>[-<n>][,<n>]...] <file-pattern>
 
 # Copyright (c) 2006-2007 Yann Dirson <ydirson@altern.org>
 # Subject to the GNU GPL, version 2.
@@ -18,14 +19,17 @@ shift
 filtercmd=cat
 hunks=
 foldflags=
+showflags=()
 while [ "$#" -gt 0 ]; do
     case "$1" in
-       -\#*) hunks="$1"; shift ;;
-       -t) foldflags="-t"; shift ;;
+       -\#*) hunks="$1" ;;
+       -t) foldflags="-t" ;;
+       -O) showflags+=(-O "$2"); shift ;;
        -*) { echo >&2 "unknown flag '$1'"; exit 1; } ;;
        *) break ;;
     esac
+    shift
 done
 [ "$#" = 1 ] || { echo >&2 "supports one file only"; exit 1; }
 
-stg show "$PATCH" | filterdiff -p1 $hunks -i "$1" | stg fold $foldflags
+stg show "${showflags[@]}" "$PATCH" | filterdiff -p1 $hunks -i "$1" | stg fold $foldflags