SVN反向合并?

Ric*_*ket 70 svn

我的SVN存储库在修订版497中是完美的.我执行了几次不良提交,所以现在它处于修订版HEAD.我看到要回滚你应该使用这样的命令:

svn merge -r HEAD:497 .
Run Code Online (Sandbox Code Playgroud)

在工作目录中(工作目录是HEAD修订版).但这是正确的命令吗?或者我使用HEAD:498?还是496?我已经运行了该命令,当前版本似乎与497不同,因为当我更新-r 497(或者当我有497个工作副本并且我更新-r HEAD)时,会发生大量文件更新.

我是否有某种fencepost问题,其中HEAD:497实际上恢复到496,或者其他什么?或者,当我更新时,尽管HEAD和497是相同的,但SVN会追溯到每个版本?

编辑:

只是为了澄清,正如我早些时候说的,当我在497和我合并的HEAD之间更新时,我看到发生了很多文件更改.我认为如果497和HEAD相同,它会检测到,并且不会发生文件更改; 它只会说"更新到修订版497." 我的命令错了,还是这个想法错了?(如果是的话,为什么?)

Upg*_*ave 74

如果你的回购在修订版497处于原始状态,那么我认为你是对的,你需要做一个:

svn merge -r HEAD:497 .
Run Code Online (Sandbox Code Playgroud)

该merge命令只会更改工作副本中的文件,因此请记住还要提交更改以更新repo中的HEAD.

在进行合并,然后是提交之后,尝试将版本497与HEAD进行比较,它们应该是相同的.


San*_*ken 22

如果要撤消r123,则需要 svn merge -r 123:122 .

这意味着你需要运行

svn merge -r HEAD:497 .
Run Code Online (Sandbox Code Playgroud)

要验证运行:

svn diff -r 497
Run Code Online (Sandbox Code Playgroud)