前文链接:SVN与VSS并用进行代码管理
之前提及到了用SVN来辅助VSS进行代码管理,今天又看到了一个神奇的事情,因为要发布一个版本,把一整个文件夹直接铲了…而VSS会直接关联,我打开这个工程的时候一直报错,我才去看了一下整个工程都被爆破了….整个人直接一脸懵逼…
SVN的一个好处是,trunk/branches/tags是真的好用。建议开发项目在新建repository的时候选择默认的trunk/branches/我之前曾经问过我的以前的组长,我们有很多差异化的工作是不是可以用branches来进行,然而组长提及说可能会非常的麻烦,我今天看了一下,可能在文件多的时候的确很容易有问题,不过总体感觉应该还是可行的。 参照今天这种惨案,如果是用SVN进行管理的话,原则上是这样子的: 1. 可以上PRoduction的版本应该提交完毕并且打一个tag。如果要发布,直接check out这个tag的文件进行发布即可。 2. 我现在的代码应该是在当前版本新开一个分支进行,然后进行我的修改,等所有修改都确认可行之后再合并到trunk上面去。 3. 如果发布的版本需要修改,又不想影响已经提交的代码,应该直接打一个分支,然后进行修改,然后再发布。确认这些代码是可以合并到主分支的,就合并;如果要维持的,就在分支上继续进行并写好日志。
今天尝试操作了一下,应该是这样的。 1. 对本地的工作目录打分支: 1.1 确保当前工作目录代码都是最新的,或者有修改的话,保存副本然后revert到服务器当前最新的版本,然后右键工作目录 - SVN - branches/tags(分支/标记),进行分支创建。 1.2 在To Path(至路径)中填写需要打分支的路径(一般是/branches 下相同的文件/文件夹名即可),然后指定需要导出的版本,填写日志信息即可。
1.3 Tags是类似的,只是To Path填写/tags下的路径,一般Tags都是打版本号或者类似的了。 1.4 check out branches/tags。 一般在branches或者tags直接右键更新就可以了,当然也可以checkout到其他地方,只需要checkout的路径填写当时打分支的那个ToPath即可。
如果是从tag打一个分支,那么可以在已创建的tag那里同样选择branches/tags,然后To Path设置为branches的路径即可,那么这个branches的工作基础就是那个tag的版本。
在对于有大量代码同时开发的情况下,其实本身svn就已经是一个很好的选择,定期update之后再提交就不会有太大的问题。如果一个重要的功能大家都会同步进行修改的话,特别是修bug和新功能并行的话,我觉得还是直接开branches进行新开发会更好。
另外,说明一下是,按照svn的说法,分支仅仅是简单复制,大体类似打了一个软链接的样子,并不会实际多创建一堆副本的,所以不用担心。
新闻热点
疑难解答