Subversion + ant
cvs時代は、
antで、チェックアウト→build→tag
とかやったもんだけど、
svnだとどうすんの?
ということでsvnantについて。
チェックアウト(or Export)はいろんなところで解説されているので、
タグ(copy)について
http://subclipse.tigris.org/svnant.html
上記で落とした関連jarは./libにあるとする。
(build.xml自体は、プロジェクトルート/buildにあるので、
プロジェクトルート/build/libにあるということ。)
<property name="svn.checkout.dir" value="${tmp.dir}/checkout"/> <property name="svn.userid" value="[user]" /> <property name="svn.password" value="[pass]" /> <property name="svn.url" value="[url]" /> <property name="svn.trunk.url" value="${svn.url}/trunk" /> <property name="svn.tag.url" value="${svn.url}/tags" /> <property name="svn.revision" value="HEAD" /> <!--現在時刻取得--> <tstamp> <format property="now.date" pattern="yyyyMMdd" /> </tstamp> <!--svnAnt--> <path id="svnant.class.path"> <fileset dir="lib"> <include name="*.jar" /> </fileset> </path> <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.class.path"/> <target name="tag"> <svn username="${svn.userid}" password="${svn.password}"> <copy srcUrl="${svn.trunk.url}" destUrl="${svn.tag.url}/REL_${now.date}" revision="HEAD" message="${now.date}" /> </svn> </target>
一応上記でタグが打てる。
タグが存在するのに、再度タグタスクを行った場合、
タグ内が変になります。
REL_20080707があるのにタグタスク実行すると、
REL_20080707/trunkが出来る。
さらにタグ付与するとエラー(trunkがすでにあるよ)
と。
なんかチェックする方法もなさそうなんだよね・・・
力技だと、
タグ指定でexportすることで代用とか、
常に上書きとして、いったんdel発行とか、
REL_yyyyMMddhhmmssというテンプレートにするとかあると思うけど。