SVN合并与分支操作的快速命令指南

本文详细介绍了SVN在合并和分支过程中常用的命令行操作,包括创建分支、查看分支信息、从分支合并到主干以及从主干合并到分支的具体步骤和示例命令,适合习惯使用命令行的开发者参考。

SVN - 合并期间的一些快速命令

以下是合并和分支过程中一些常用的SVN命令。我过去常用Tortoise完成这些操作,但学会这些命令后,感觉操作更加便捷。虽然Tortoise在GUI方面表现不错,但本文更针对喜欢命令行操作的开发者。

从主干创建新分支

如果想从主干的特定版本创建分支,以下命令非常方便。它执行远程复制,意味着您所在的机器不需要整个代码树的副本。

1
$ svn copy -r REVISION TRUNK_URL NEW_BRANCH_URL --username USERNAME --password PASSWORD -m MESSAGE

示例:

1
$ svn copy -r 1234 http://shaafshah.com/trunk http://shaafshah.com/branches/MY_BRANCH --username foo --password bar -m "Remote copy"

分支创建时间查询

如果想了解分支创建的日期:

1
$ svn log -v --stop-on-copy BRANCH_URL

最后一条记录将显示分支创建的日期。

列出所有分支

如果想查看分支列表或树结构:

1
$ svn ls BRANCHES_URL

例如:http://shaafshah.com/branches

从分支合并到主干

浏览到本地目录中已检出的主干位置:

1
$ cd shaafshah.com/trunk

更新主干到HEAD:

1
2
$ svn update
在修订版1234。

以下命令将从分支合并到主干但不会提交:

1
$ svn merge -r BRANCH_REVISION:TRUNK_REVISION BRANCH_URL

如果是第一次执行合并,BRANCH_REVISION将是创建分支时的修订版。

1
$ svn merge -r 1233:1234 http://shaafshah.com/branches/my_new_branch

之后应执行svn status检查文件状态。文件将用以下字符标记:

  • ‘A’ 已添加
  • ‘C’ 冲突
  • ‘D’ 已删除
  • ‘I’ 已忽略
  • ‘M’ 已修改

如果状态中有任何‘C’,尝试执行svn commit将合并保存到主干时,这些文件将不会被提交。

从主干合并到分支

要将主干合并到分支,需要浏览到本地目录中已检出的分支位置。

1
2
3
$ cd shaafshah.com/branches/mybranch
$ svn update
在修订版1234。

以下命令将尝试从修订版1233(即分支创建之日)合并主干到分支头:

1
$ svn merge -r 1233:HEAD TrunkURL BRANCH_URL

希望这些内容能有所帮助。但您肯定应该参考SVN手册以获取更多详细信息。

SVN手册地址:SVN Book

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计