subversionで管理しているbitkeeperソースのパッチ作成スクリプト

こんな感じでうまくいった。新しい方のディレクトリに存在する実体ファイルのみがdiff対象というやり方。

mir@mouse:/usr/local/bin$ cat diff-bk.sh 
#!/bin/sh
if [ $# -lt 2 ]; then
    echo "usage: diff-bk.sh src1 src2"
    exit 1
fi

cd $2
find . -type f | sed -e "s/\.\///g" > /tmp/diff-bk.list
cd ..

while read line
  do
  diff -Nudp "$1/$line" "$2/$line"
done < /tmp/diff-bk.list

rm /tmp/diff-bk.list

これで作成したパッチファイルを使ってpatchした後、"http://d.hatena.ne.jp/mir/20070613/p2"のスクリプトで作ったファイルを使って以下を実行。

cat removed.txt | xargs svn remove
cat added.txt | xargs svn add

追記

.rejファイルはsvnが無視するのかな。svn checkoutすると入ってない。svn deleteの前にremoved.txtから.rejを消しておく必要があるかも。