让我们说我有一个目前正在修订版本100的项目。我现在意识到最后几天的更改是完全错误的,我想要将所有更改回滚到修订版95并从那里再次开始开发。理想情况下,我会执行命令以回滚到95,然后重新发送更改,以便我的存储库位于修订版101,项目中的所有文件都等同于版本95.
前几次我尝试了这个(我不记得我做了什么)所有它设法做的就是将我所有已更改的文件设置为冲突状态(并在我尝试解决它们时给了我奇怪的错误)。我终于设法让我的工作副本回滚到95(via something like this),但是当我尝试提交时,它告诉我在更新项目之前我不能这样做。好吧,更新项目会将所有文件恢复到100版本,除了自回滚以来我改变的1或2(他们又回到了冲突状态)。
如何告诉SVN将我的工作副本放在版本95,忽略版本96-100中的所有更改,并将ver 95工作副本提交为所有文件的新头版?
其他信息:我们正在运行SubvertEdge的自托管版本,并通过TortoiseSVN和AnkhSVN与它进行交互。我是唯一一个从事该项目的人,并且几乎没有机会对其他人做出任何改变(即使有,我仍然希望95覆盖所有内容)。
答案 0 :(得分:2)
由于您说您正在使用TortoiseSVN,只需使用"还原到此版本"然后提交。此反向将HEAD的所有更改合并到该修订版,并允许您提交它。
您链接的答案使用"还原此修订版本中的更改",这只是该修订版本的反向合并。您应该已经能够提交更改,因此我怀疑您可能已使用"更新项目到版本",在您更新到HEAD之前,您无法提交更改。
答案 1 :(得分:1)
您只需两步即可完成此操作:
svn merge -r:100:95 repo_path
svn commit -m"恢复到修订版95."