我想在Subversion中恢复版本n和(n-1)之间的一些更改。
我只是从版本(n-1)中放回文件 - 从存储库中取出它们并以后备箱中的最新版本重新检入。
这里似乎他们想要从版本(n-1)创建一个分支并将其与主干合并。
这更好还是“更正确”?
在这种情况下,它是一个目录中的一些文件。 这些文件最近没有其他更改。
答案 0 :(得分:2)
为您和其他人干净地删除错误的提交......
“revert”不是您要查找的那个,因为它只影响本地更改。为了还原已经提交的修订版,您必须使用“否定”语法,在您要删除的修订版本前加上“ - ”(minu),以使用“svn merge”。示例:
current rev: 1337
bad rev: 1330
$sh> svn merge -c -1330 svn://your.svn.url:/your.svn.path .
$sh> svn ci -m "removed revision 1330"
因此,您将存储库与rev“-1330”进行反向合并,然后进行检查,从而为您和其他开发人员删除1330中的更改。
威尔
答案 1 :(得分:0)
要删除特定修订版之间的更改,例如过去的1000和1010:
从签出到数据工作副本类型:
svn merge -r 1010:1000 .
这将删除修订版1000和1010之间工作副本中的所有更改(不包括添加到1000本身的更改)。只要您没有任何本地修改并且在您确认它符合您的要求之前不再检查结果,那么可以安全地使用它。
在您的特定情况下,因为您只想删除单个修订版,您可以使用'-c'而不是更通用的-r:
svn merge -c 2000 .
这相当于-r 1999:2000,删除了1999年到2000年之间的变化。
答案 2 :(得分:0)
使用svn merge
,它对您的方案非常有用。
svn merge -c n http://xxxx/xxx/xx