我有一个文件,当前版本为 X。我想将其恢复为修订版本 X-1 并将其提交为 X-1。但是,当我获得 X-1 的提交预览时,SVN(我在本例中使用 Tortoise)显示没有更改。这是怎么回事?我该如何提交恢复后的文件?
答案1
我不确定我是否过多地理解了你的问题的措辞,但你可能误解了 SVN 的工作原理,以及“revert”命令的含义。
首先,“恢复”命令仅用于删除您尚未提交的更改。它会撤消您使用svn status
TortoiseSVN 的“检查修改”看到的任何更改。仅此而已。
其次,不可能提交小于当前修订版本的修订版本。在 SVN 中,文件没有修订版本。修订版本有文件。修订版本号总是上升,从不下降。将 SVN 中的修订版本视为存储库中所有内容的快照。从技术上讲,您应该说“文件 foo 存在于修订版本 123 中”,而不是“文件 foo 的修订版本 123”。后者并不完全正确,在某些情况下可能会失效。
最后,您似乎想要做的是删除对文件的一些更改。您可以使用“反向合并”的概念创建文件的新修订版来实现此目的。从命令行,您可以合并文件,指定负面修订版或向后的修订版范围,以撤消这些修订版中的更改。然后,您可以提交以获取包含文件的新修订版,其中的更改已撤消。TortoiseSVN 使这变得简单:只需打开“显示日志”对话框,右键单击要撤消的修订版,然后选择“从此修订版恢复更改”。然后,您需要像以前一样提交。
不管怎样,从指向 HEAD 的工作副本执行此“反向合并”步骤。您的新修订版本无论如何都会在 HEAD 之后,因为这就是 SVN 的工作方式。