SVN反向合并?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN反向合并?相关的知识,希望对你有一定的参考价值。
我的SVN存储库在修订版497中是完美的。我执行了几次不良提交,所以现在它处于修订版HEAD。我看到要回滚你应该使用这样的命令:
svn merge -r HEAD:497 .
在工作目录中(工作目录是HEAD修订版)。但这是正确的命令吗?或者我使用HEAD:498?还是496?我已经运行了该命令,当前版本似乎与497不同,因为当我更新-r 497(或者当我有497个工作副本并且我更新-r HEAD)时,会发生大量文件更新。
我是否有某种fencepost问题,其中HEAD:497实际上恢复到496,或者其他什么?或者,当我更新时,尽管HEAD和497是相同的,但SVN会追溯到每个版本?
编辑:
只是为了澄清,正如我早些时候在497和我合并的HEAD之间更新时说的那样,我看到发生了很多文件更改。我认为如果497和HEAD相同,它会检测到,并且不会发生文件更改;它只会说“更新到修订版497.”那么我的命令错了,还是这个想法错了? (如果是的话,为什么?)
如果你的回购在修订版497处于原始状态,那么我认为你是对的,你需要做一个:
svn merge -r HEAD:497 .
该merge命令只会更改工作副本中的文件,因此请记住还要提交更改以更新repo中的HEAD。
在进行合并,然后是提交之后,尝试将版本497与HEAD进行比较,它们应该是相同的。
如果你想撤消r123,你需要svn merge -r 123:122 .
这意味着你需要运行
svn merge -r HEAD:497 .
要验证运行:
svn diff -r 497
这有帮助吗?
http://svnbook.red-bean.com/en/1.1/ch04s04.html#svn-ch-4-sect-4.2
对于使用Tortoise SVN的任何人,您只需调出“显示日志”对话框即可恢复提交:
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-howto-rollback.html
要退出不希望的更改(也许您提交了其中包含调试语句的其他文件,以及您确实要提交的内容),请说错误的更改是-r10:
svn update
svn merge -r10:9 <URL of your repository base> .
现在您可以只返回您想要提交的文件:
svn update
svn update -r10
svn commit <just that one file> # this is the command you meant to type from the beginning
如果您想要快速可靠地回滚到特定修订版,那么只需查看存储库的旧版本。
运行svn info
以提醒自己存储库URL是什么,然后创建一个新文件夹并检出所需的修订:
cd <your new folder>
svn checkout <URL> -r 497 .
然后,您可以针对现有文件夹区分该文件夹,如果需要,可以从那里将整个修订版提交回存储库。
你需要这个http://phpcollection.com/revert-files-to-older-svn-version/
考虑HEAD:150恢复r1 = 100和r2 = 90
- svn up
- svn -r 100:99
- svn go -r 90:89
注意:这些更改不会还原EXTERNALS文件夹!
以上是关于SVN反向合并?的主要内容,如果未能解决你的问题,请参考以下文章