Subversionでリビジョン間で追加・更新されたファイルのみを抽出する
OS X にはTortoiseSVNがないので若干不便です。
特に差分だけFTPでアップしたいとかいったときに、 リビジョン間の差分をTurtoiseSVNでは取得できるのですが、svnのみではそれはできません。
この差分を抽出するスクリプトをブログで公開されている方のものを拝見して手直ししてみました。
#!/bin/bash
N=${1}
M=${2}
BASEDIR=${3}
EXPDIR=${4}
if [ $# -ne 4 ] ; then
echo "usage: diff_export.sh [from rev.] [to rev.] [base dir] [exp target]"
exit
fi
if [ -e ${EXPDIR} ] ; then
echo "error: Export target already exists!"
exit
fi
mkdir -p ${EXPDIR}
ENTRIES=`svn diff -r ${N}:${M} ${TARGET} --summarize | grep "^[MA]" | sed -E "s|^[MA]\s*||"`
for i in ${ENTRIES}
do
DIRNAME=`dirname ${EXPDIR}/${i}`
mkdir -p ${DIRNAME}
svn export -r ${M} ${BASEDIR}/${i} ${EXPDIR}/${i}
done
winebarrelさんのブログを参考にさせていただきました。ありがとうございました。