Subversion

Subversion显然更适合Web Application的开发,他的好处首页上已经列明了,不过他的表达不佳,我的英文也不堪,所以很多好处是用了之后才体会得到。

基础读物:那份因为有过八卦而比较有名的《用Subversion进行版本控制》

1.好处

1. 对空目录,无论要留要删,都比only base file的CVS好。

2. 可以改名,对于喜欢重构的同志比较有用,rename后仍然可以方便的比较版本间异同,commit信息也方便保留。

3. 把每次提交捆绑在一起,日后查记录时能看到同时提交的文件。对于一次提交一个issue相关文件的同学来讲,这是个很实用的功能,Web应用和桌面应用比,就是分层N多,一个改动总要改N个源码+配置文件,现在能绑在一起了挺不错。

4. http wav的路径清晰,发布项目的路径很容易,另外用简单的目录概念代替了复杂的分支与标签,而且使用映射,使得开分支作备份之类的不用把数据重新传一次,成本好低。

其余的优点大家自用自察了,比如小海龟写提交注释时居然有文件名auto complete,二进制文件也是只update差异,不update全部等等。

2.在Ant中使用Subversion

Ant暂时没有Subversion的Task,需自行下载JavaSVN项目,以命令行形式执行。

    <target name="svn-export" depends="init" description="导出洁净的SVN仓库">
        <delete dir="${release.exportdir}"/>
        <java classname="org.tmatesoft.svn.cli.SVN" dir="${basedir}" fork="true">
            <arg value="export"/>
            <arg value="."/>
            <arg value="${release.exportdir}"/>
            <classpath>
                <pathelement location="lib/javasvn-cli.jar"/>
                <pathelement location="lib/javasvn.jar"/>
            </classpath>
        </java>
    </target>