使用TotoriseSVN的分支/标签功能

使用TotoriseSVN的分支/标签功能

 http://blog.sina.com.cn/s/blog_5383588c0100o1oo.html

原来在新建一个项目文件夹后,再把Trunk、Branches和Tags三个文件夹都倒入到Repository里,然后在Trunk下建立项目结构。后来发现SVN在创建分支/标签时需要用户指定其目录名称,这样的话如果只有一个分支/标签起名与建立的文件夹重名了就会创建失败,当然可以在起名时多一级版本目录,例如xxx/Branches/1_1,但分支/标签这两个目录已经作为提交的一个原子,在里面只能执行Update操作而不是Check out,像前面说的一样可以新建带版本号的目录再Check out,但实际上分支/标签的管理完全是在SVN内部的,建立分支/标签目录是应该的,但把他们也作为Repository中的一部分是没必要的。
从外部Check out分支/标签后修改在Commit会在此基础上发展,而不影响Trunk,可以通过看版本分支图参考。最后分支如果稳定了,可以合并到Trunk或切换过去。
今天收获不小,这个功能真是不错,SVN太酷了!下一步应该掌握Patch的概念。
 
2007/06/05:今天才发现弄错了!实际上新建一个项目文件夹后,还是要把Trunk、Branches和Tags三个文件夹都倒入到Repository里。创建分支/标签时首先在Trunk目录中选择Branches/Tags,指定名称前再加上Branches或Tags,如xxx/Branches/TempVersion。如果没有Branches或Tags而创建TempVersion的话就会失败,所以还是添加上比较好。另外就是上面(3月27日)写的自建目录然后Check out的做法实际上是取出一份Trunk副本然后修改提交,属于分布式多人开发管理,因为这样只能提交给Trunk,而没有使用分支/标签功能。这真是个概念错误,不知有没有人看了而被误导,实在是对不住啊。
 
2008/07/07:整整一年过去了,昨天才算是真正用了一次Branch功能。为了测试方便,我需要Build一个输出伪数据的版本,于是我在Trunk上做了修改,但没有commit,因为这只是临时的权宜之计,过后把它给revert就是了。但后来通过这个Temporary version发现应该改进Trunk代码,而这个用来测试的临时功能还是很有用的,而且也有不断修正的可能,所以我真的应该建立个Branch了。首先是在TotoriseSVN菜单中选择Branch/Tag,然后在To URL下的编辑框输入xxx/Branches/分支名,然后OK。再来到Branch目录update即可获得刚才创建分支时版本的副本,在此基础上的修改commit与在Trunk上的修改commit可以互不冲突,随时可以查看TotoriseSVN自带的版本分支图,一目了然,很清晰。这次没有经历从Branch/Tag合并到Trunk的功能,用到了再回来补

你可能感兴趣的:(SVN)