变更和修订之间的差异

时间:2013-08-21 14:01:58

标签: svn

我想知道这两个命令之间的区别是什么:

  

svn merge -r N:HEAD url working_copy

     

svn merge -c N url working_copy

我只想将N中的内容合并到我的工作副本中,在第一个命令中我得到了我想要的东西以及更多,但如果我使用第二个命令,我什么也得不到。

什么是正确的命令行?

变更和发布有什么区别?

我对这两个选项有点困惑,与diff相同的问题。

我试着查看redbean书,但这有点令人困惑。

如果有人有一个好的文档来理解它,那将会有所帮助。

感谢你的帮助, 查尔斯。

1 个答案:

答案 0 :(得分:2)

svn help merge

 -r [--revision] ARG      : ARG (some commands also take ARG1:ARG2 range)
                            A revision argument can be one of:
                               NUMBER       revision number
                               '{' DATE '}' revision at start of the date
                               'HEAD'       latest in repository
                               'BASE'       base rev of item's working copy
                               'COMMITTED'  last commit at or before BASE
                               'PREV'       revision just before COMMITTED
 -c [--change] ARG        : the change made by revision ARG (like -r ARG-1:ARG)
                            If ARG is negative this is like -r ARG:ARG-1
                            If ARG is of the form ARG1-ARG2 then this is like
                            ARG1:ARG2, where ARG1 is inclusive

因此,如果您使用svn merge -c 100,那相当于svn merge -r 99:100 - 在该修订版中所做的更改集。

如果您在尝试合并修订后进行了300次更改,则svn merge -r 100:HEAD将在修订版100和400之间进行每次更改。这就是为什么您要这样做的原因得到更多。

在单个存储库中执行合并的上下文中,如果在使用svn merge -c N时“一无所获”,我首先会建议检查该版本的日志并验证修订版N是否真的触及了您的路径'用作合并的来源。如果修订版100已更改/branch/mybranch并且我正在尝试从/trunk合并,则在使用svn merge -c 100时无需合并。