SVN合并与分支常用命令速查指南

本文详细介绍了SVN在分支创建、合并操作中常用的命令行技巧,包括从主干创建分支、查看分支信息、分支与主干之间的双向合并等实用命令,适合习惯命令行操作的开发者参考。

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

以下是合并和分支过程中一些常用的SVN命令。我以前使用TortoiseSVN进行这些操作,但学会这些命令后,感觉操作更加便捷。虽然TortoiseSVN在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
At revision 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
At revision 1234.

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

1
$ svn merge -r 1233:HEAD TrunkURL BRANCH_URL

希望这些命令能有所帮助。不过,你应该参考SVN手册以获取更多详细信息:SVN Book。

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