是否有一种快速的方法从SVN代码库中删除特定的签入?例如,我最新的SVN版本号是9999,我想要一个没有签入版本9978的代码。9979.
我现在就是这么做的:
- 结账到9977:
svn co -r 9977 repo_path
- 合并9999之前的所有更改,除了9978 &9979年。
请建议。
如SVN书中所述:
取消修改
svn merge的一个非常常见的用途是回滚更改已经承诺了。假设你正在愉快地工作/calc/trunk的工作副本,您发现更改发生了回到303版,它改变了integer.c,这是完全错误的。它永远都不应该被承诺。您可以使用svn merge来"撤消"更改您的工作副本,然后将本地修改提交给存储库。您所需要做的就是指定一个反向差值。(您可以通过指定——revision 303:302或等效的名称来完成此操作——改变-303。)
使用反向合并:
svn merge -r 9979:9977 http://svn.example.com/repos/myrepo/trunk
或者使用" cherypick "合并:
svn merge -c -9979 http://svn.example.com/repos/myrepo/trunk
svn merge -c -9978 http://svn.example.com/repos/myrepo/trunk
当您对工作副本所做的更改感到满意时,不要忘记svn checkin
.