--
--.--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2009
03.15

svn で、あるリビジョンからあるリビジョンまでの差分のみ export

って、ぐぐったら、亀svn 使え!
ってのが多かったのだが、シェルスクリプトで解決してる方が!
いい感じだったので使わせていただくことに。

だが、ちょっと困ったことが。

エクスポートしたファイルを tar でまとめたいのだ。
毎回ディレクトリ消して、ってやるのもだるいので、
ちょっと書き換えてみることに。

diff_export.sh:

#!/bin/bash
N=${1}
M=${2}
TARGET=${3}
OUTDIR=${4}

mkdir -p ${OUTDIR}

ENTRIES=`svn diff -r ${N}:${M} ${TARGET} | grep ^Index | sed -r "s|^Index: ||"`
for i in ${ENTRIES}
do
DIRNAME=`dirname ${i}`
FILENAME=`basename ${i}`
svn export --force -r ${M} ${TARGET}/${i}
mkdir -pv ${OUTDIR}/${DIRNAME}
mv -v ${FILENAME} $OUTDIR/${DIRNAME}
done



4つめの引数を設定して、export したものを出力するディレクトリを指定できるようにしてみた。

これで、

DIR=`date +%Y%m%d-%H%M`
sh diff_export.sh 1 HEAD https://~ $DIR/
tar zcfv $DIR.tar.gz $DIR
scp $DIR.tar.gz どっかサーバ:~/tmp
ssh どっかサーバ 'cd ~/tmp; tar zxfv '${DIR}'.tar.gz'


のように書けて大変満足。

スポンサーサイト
Comment:0  Trackback:0
back-to-top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。