svn 使用技巧

从事微软 C#.NET 开发12年,使用 VS 系列也12年,真正使用源代码管理工具也快10年了,现在回想起来真不知道没有使用源代码管理是怎么过来的。

记得最初使用的是 CVS 现在到没有多大印象了,后来也用了一段时间的 VSS,毕竟 VS 自带不可能没有用过吧!!不过后来新出的 VSTS 却完全没有兴趣尝试了,因为已经改用 SVN,一直到现在。

SVN 最大的体会就是一个 trunk 搞定~~!!确实是呀,虽然建立了 branches/tags,但从来不用,感觉没有必要呀,也没有去弄懂,就围绕 trunk 一直改呀改的,能用能管理就好。

直到一天,发现同时开发多个版本,噩梦就来了(不过噩梦就自己补脑吧),下面说说实际使用 SVN 的可行方案。(已实践)

众所周知,VS 是按照解决方案和项目组合而成,而项目可以依据模块呀、业务层、逻辑层等的纵向横向再纵向划分(自由发挥吧),那么当要修改某一个项目或几个项目又不想影响他人工作(担心研究性质的代码影响)怎么办呢?

最好的解决方案是为要修改的项目创建分支,然后将具体的项目 switch 到分支上。那么有很多分支咋办,如8个呢,那就要么项目划分有问题,要么这次修改就有问题,但如果是有一个接口项目,五个实现项目,要改变接口那么 所有此接口实现五个项目就必须改啦,再有一个单元测试也要改,然后等等、等等的的项目呢?汗呀~~~~

遇到以上情况,我只能说有必要将项目分这么细吗?引用起来不嫌弃他麻烦吗?(弱弱的说一句,貌似这是我以前曾经有过的风格,不过没有弄分支便是了,哈哈)

当然啦,也可以通过建立目录将同类型或相近的项目打包运走咯~~~注意不是临时改呀,否则等着挂吧。

tags 使用就是标记,当然要将整个解决方案标记起来,如 v1.0/v1.2。如果已经标记的版本出现 issue,那么应该用 branches v1.0-issue-12(修改那个项目就分支哪个,不要整个解决方案,获取代码可以烦死你) 来修复此 bug,修复后重新标记 tags 版本 v1.0.1,然后可以将此 issue branches 删除掉。

好了,这里就总结到这。