我想知道这两个命令之间的区别是什么:
svn merge -r N:HEAD url working_copy
svn merge -c N url working_copy
我只想将N中的内容合并到我的工作副本中,在第一个命令中我得到了我想要的东西以及更多,但如果我使用第二个命令,我什么也得不到。
什么是正确的命令行?
变更和发布有什么区别?
我对这两个选项有点困惑,与diff相同的问题。
我试着查看redbean书,但这有点令人困惑。
如果有人有一个好的文档来理解它,那将会有所帮助。
感谢你的帮助, 查尔斯。
答案 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
时无需合并。