在Eclipse中使用SVN回滚错误更改


81

假设我已经对Subversion存储库进行了一些错误的更改。然后我做出一些我想保留的好的更改。

在Eclipse中回滚这些不良更改并保留良好更改的最简单方法是什么?假定与不良更改相关的文件与与不良更改相关的文件不同。如果对相同文件进行了良好更改,而对不良文件进行了更改,那么事情将如何改变?

我主要是想通过Eclipse插件(Subclipse或Subversive)来做到这一点,但是命令行命令也很有趣。

Answers:


30

您有两种选择可以执行此操作。

快速和肮脏ctrl在Project Explorer视图中选择文件(使用),右键单击它们,选择Replace with...,然后从Latest from Repository或某些Branch版本中选择最佳选项。获取这些文件后,您可以对其进行修改(使用空格或修复某些内容,然后调用并提交它们以创建更新的修订版。

一种更干净的方法是Merge在团队菜单中选择并导航向导,该向导将帮助您恢复实际版本中的旧版本。

这两个命令都有等效的命令行:svn revertsvn merge


1
来自Repository的最新版本是错误签入的版本,因此我看不出它应该在哪里提供帮助。除此之外,eclipse不想帮助您解决此问题,因为如果您选择多个文件,则仅提及选项可用(可能是因为它们的最新版本不同)。
Macilias 2015年

79

在Eclipse Ganymede(子片段)中

选择包含重大更改的项目/文件,然后从弹出菜单中选择:

团队->显示历史

与该项目/文件相关的修订将显示在“历史记录”选项卡中。

查找提交了“重大更改”的修订,然后从弹出菜单中选择:

从修订版X还原更改

这将合并错误修订中修改的文件的更改,并在错误修订之前进行修订。

这里有两种情况:

  1. 如果您没有对该文件进行任何更改(错误修订是该文件的最新修订),它将仅删除在错误修订中进行的更改。这些更改将合并到您的工作副本中,因此您必须提交它们。

  2. 如果您对该文件进行了某些更改(错误修订不是该文件的最新修订),则必须手动解决冲突。假设您有文件readme.txt,错误的修订号是33。此外,您还对该修订版34中的文件进行了一次提交。选择“从修订版33还原更改”后,您的工作副本中将包含以下内容:

readme.txt.merge-left.r33- 不良修订

readme.txt.merge-right.r32- 错误修订之前

readme.txt.working- 工作副本版本(与r34相同,如果您没有任何未提交的更改)

原始的readme.txt将被标记为冲突,并且将包含带有某些标记(<<<<<<<。working等)的合并版本(其中删除了较差修订的更改)。如果您只想从不良修订中删除更改并在此之后保留更改,那么您要做的就是删除标记。否则,您可以将内容从上述3个文件之一复制到原始文件。无论选择什么,完成后都将冲突标记为

团队-马克解决

临时文件将被删除,您的文件将被标记为已更改。与1中一样,您必须提交更改。

请注意,这不会从svn信息库中的修订历史记录中删除修订。您只需进行新修订,即可删除不良修订中的更改。


14

如果您想一次执行1个文件,则可以在已安装Eclipse SVN插件的情况下转到文件的“历史记录”视图。“团队->显示历史记录”

在“历史记录”视图中,找到该文件的最新版本,右键单击并选择“获取目录”。这将用该版本的内容替换当前版本。然后,您可以在全部修复后提交更改。


6

在使用Subversive的Eclipse中:

右键单击您的项目>团队>合并

在合并窗口中,选择要照常还原的修订,但还要启用“反向合并”复选框。

正常合并。



1

svnbook的一节介绍了Subversion如何允许您从特定修订版本还原更改,而又不影响后续修订版本中发生的更改:

http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo

我使用的Eclipse并不多,但是在TortoiseSVN中,您可以通过日志对话框中的来实现。只需右键单击要还原的修订,然后选择“还原此修订的更改”。

如果您要还原“错误的更改”的文件在后续版本中具有“良好的更改”,则过程相同。“不良”修订的更改将被还原,而“良好”修订的更改将保持不变,但是您可能会遇到冲突。


0

我有同样的问题,但是Cleanup eclipse选项对我不起作用。

1)安装TortoiseSVN
2)转到Windows资源管理器,然后右键单击您的项目目录
3选择“清理”选项(通过选中“中断锁定”选项)

其作品。

希望这对某人有帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.