Svn 使用Subversion回滚更改集的最佳方法是什么?

Svn 使用Subversion回滚更改集的最佳方法是什么?,svn,version-control,Svn,Version Control,我使用各种源代码管理系统已经有一段时间了,但是当涉及到恢复更改时,我还不是一个专家。在这种情况下,有人能帮忙吗 脚本 给定在修订版5中引入了一个bug 第5版中更改了3个文件 2个文件中的更改是导致该错误的原因 当客户在版本9中发现错误时 然后,导致版本5错误的文件中的2个必须恢复为版本4 从修订版6到HEAD的更改必须应用于这两个文件 我认为必须有一种方法来比较这两个文件的版本4和版本5,并生成一个修补程序来撤消版本5中的更改,然后可以将其应用到头部版本以回滚缺陷。如果您正在使用,那么这是一个

我使用各种源代码管理系统已经有一段时间了,但是当涉及到恢复更改时,我还不是一个专家。在这种情况下,有人能帮忙吗

脚本 给定在修订版5中引入了一个bug 第5版中更改了3个文件 2个文件中的更改是导致该错误的原因 当客户在版本9中发现错误时 然后,导致版本5错误的文件中的2个必须恢复为版本4 从修订版6到HEAD的更改必须应用于这两个文件 我认为必须有一种方法来比较这两个文件的版本4和版本5,并生成一个修补程序来撤消版本5中的更改,然后可以将其应用到头部版本以回滚缺陷。

如果您正在使用,那么这是一个相当简单的过程。只需右键单击一个文件并选择log,即可获得从现在到所选恢复之间的更改列表。然后将这两个文件恢复到修订版4并提交更改:

这是一本解释所有恢复和历史的书


要做一个diff,您需要执行类似svn diff-r 4:5 somefile.txt的操作,然后检查当前版本 svn合并-r 5:4文件1文件2
这是从记忆中得出的,可能不完全正确

通常a将足以回滚已提交的更改…

我假设您在我的回答中使用了TortoiseSVN

我认为您的场景不会导致文件回滚,因为您仍然希望保留每个文件的历史记录。大多数情况下,您要做的只是找到并修复错误,并提交对此文件的新更改

如果您想比较两个版本,在OrtoiseSVN中非常简单,右键单击该文件,然后进入OrtoiseSVN->ShowLog。然后选择要比较的两个修订,单击鼠标右键,然后比较修订

如果你想找出谁应该对这个错误负责,你可以使用菜单项trustoisesvn。。。这将让您知道谁修改了每一行以及在哪一次修订


哦,如果你想将一个文件恢复到以前的版本,你可以在TurtoiseSVN->Show Log中这样做,然后你选择要恢复到的版本,右键单击并选择revert to this revision。

我想你需要先在5:4之间恢复合并,然后恢复正确的文件

svn合并-r 5:5

svn恢复修正文件

你可能会在2buggy文件中出现奇怪的状态
希望您可以手动解决此问题。

要了解详细信息,请参阅:

如mark所述,您需要执行以下操作: svn合并-r 5:4文件1文件2 这意味着将更改从4向后合并到5,即撤消更改

您还可以键入: svn合并-c-5文件1文件2 这意味着向后应用提交第5版时发生的更改

接下来,您应该手动查看更改


最后,您必须提交上述更改。合并仅更改了您的工作副本。

我同意EtienneT的答案。但在“还原到此修订版”下,还有“还原此修订版的更改”选项。该选项完全符合Robert Walker撤销第5版更改的需要。不要忘记提交更改。

了解您使用的是哪个svn客户端会很有帮助。是命令行svn吗?太好了,这正是我要找的。非常感谢。