svn命令行创建和删除分支和tags

创建分支

当然,也可以再转到主干: svn switch svn://xx.com/repo/trunk

合并一个分支到主干

一旦分支上的开发结束,分支上的代码需要合并到主干。SVN中执行该操作需要在trunk的工作目录下进行。

两个分支合并

两个分支合并可以拆分为一下两步:

197从旧主干引出,186打完tag,表示是新主干

合并最新代码的意思是:将新主干与旧主干比对,并添加到197中。这样197既有自己的新增的代码,也同时有最新线上的代码。

cd 197_Branch
svn merge https://xxx.com/tags/project/project_Old_BL https://xxx.com/tags/project/project_New_BL
svn ci -m 'merge 186 trunk'

但是后来,其他人又向186提了代码,所以还需要将186分支(即打了tag后的186,打了tag前的186已是主干)合并至197中。

合并办法:找出186分支,比对与新主干之间的差别,并添加到197中。这样197就有最新的全部代码了。

cd 197_Branch
svn merge https://xxx.com/tags/project/project_New_BL https:/xxx.com/project/branches/project/186_Branch
svn ci -m 'merge 186 branch'

合并主干上的最新代码到分支上

cd br_feature001
svn merge http://svn_server/xxx_repository/trunk

# 如果需要预览该刷新操作,可以使用svn mergeinfo命令,如:
svn mergeinfo http://svn_server/xxx_repository/trunk --show-revs eligible

# 或使用`svn merge --dry-run`选项以获取更为详尽的信息。

发布

产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本。

给当前主干打个标签,并且这个标签不再改动了,但是实际上标签和分支是一个意思,你可以在标签上继续做改动,但这不推荐。

# 建立tags
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/tags/RB-1.0 
svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"

# 删除分支或tags
svn rm http://svn_server/xxx_repository/branches/br_feature001
svn rm http://svn_server/xxx_repository/tags/release-1.0