重村法克です。

        私の場合下記のようなスクリプトを /usr/src/update.sh として置いて
        /usr/src/*DIFF-* というディレクトリ(パッチのグループ化)の下に複
        数パッチ(ソースファイル単位で分割)を運用しています。

        1. CFT (Call For Testers)で実験中のコードの検証
        2. αクォリティでマージ予定すらない実験中のコードの検証
        3. 各所(OpenBSD でも)で出てるが何年も取り込まれないコード
        4. 自身の実験コード
        5. チューニング用カスタムコード

        を運用するのに使っています。当然コードベースがそれぞれあったり
        するので, グルーピングは必須です:-)。

        ちなみに ports は files/patch-mypatch-HOGEHOGE ですね。散逸して
        しまう時があるので, 一ヶ所に集めて symlink してますが。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#!/bin/sh

srcupd=${srcupd:-0}
portsupd=${portsupd:-0}
srcpatch=${srcpatch:-0}
portsdb=${portsdb:-0}

for i in $*; do
        [ x"$i" = x"-nosrc"     ] && srcupd=1
        [ x"$i" = x"-nopatch"   ] && srcpatch=1
        [ x"$i" = x"-noports"   ] && portsupd=1
        [ x"$i" = x"-noportsdb" ] && portsdb=1
done

if [ ${srcupd} -eq 0 ]; then
        `make -VSUP -VSUPFLAGS` -h `make -VSUPHOST -VSUPFILE`

        if [ ${srcpatch} -eq 0 -a $? -eq 0 -a -x /usr/local/bin/gpatch ]; then
                for i in ??DIFF-*/DIFF.*; do
                        gpatch -p0 -i $i
                done
        fi
fi

if [ ${portsupd} -eq 0 ]; then
        `make -VSUP -VSUPFLAGS` -h `make -VSUPHOST -VPORTSSUPFILE`

        if [ ${portsupd} -eq 0 -a $? -eq 0 -a -x /usr/local/sbin/portsdb ]; then
                portsdb -Uu
                portversion -L =
        fi
fi
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        以上よろしくお願いいたします。

メールによる返信