在 Eclipse 中使用 svn 回滚错误的更改

假设我对 Subversion 存储库进行了一些错误的更改。然后我提交了我想要保留的好的更改。

在 Eclipse 中回滚那些不好的更改并保留好的更改的最简单方法是什么?假设与不良更改有关的文件与与良好更改有关的文件不同。如果对相同的文件进行好的更改与坏的更改一样,情况会如何变化?

我主要是通过 Eclipse 插件(Subclipse 或 Subversive)寻找一种方法,但命令行命令也很有趣。

请先 登录 后评论

4 个回答

Fernando Barrocal

您有两种选择。

Quick and Dirty 是在 Project Explorer 视图中选择您的文件(使用 ctrl),右键单击它们,选择 Replace with... 然后选择最适合您的选项,来自 Latest from Repository 或某些 Branch 版本。获取这些文件后,您修改它们(使用空格或修复某些内容,调用并提交它们以创建更新的修订版。

更简洁的方法是在团队菜单中选择 Merge 并浏览向导,这将帮助您在实际修订中恢复旧版本。

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

请先 登录 后评论
kirlich

在 Eclipse Ganymede(子剪辑)中

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

团队 -> 显示历史

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

查找提交“错误更改”的修订并从弹出菜单中选择:

还原版本 X 的更改

这会将在错误修订中修改的文件中的更改与错误修订之前的修订合并。

这里有两种情况:

  1. 如果您没有对该文件提交任何更改(错误修订是该文件的最后一个修订),它只会删除在错误修订中所做的更改。这些更改会合并到您的工作副本中,因此您必须提交它们。

  2. 如果您对该文件提交了一些更改(错误的修订不是该文件的最后修订),您将不得不手动解决冲突。假设您有文件 readme.txt,错误的修订号是 33。此外,您在修订版 34 中对该文件进行了另一次提交。选择 Revert Changes from Revision 33 后,您将在您的工作副本中包含以下内容:

readme.txt.merge-left.r33 - 错误修订

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

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

原始的 readme.txt 将被标记为冲突,并且将包含带有一些标记 (

请先 登录 后评论
Matt

如果您想一次处理 1 个文件,假设您安装了 Eclipse SVN 插件,您可以转到该文件的历史记录视图。 “团队->显示历史”

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

请先 登录 后评论
Tuukka Mustonen

在 Eclipse 中使用 Subversive:

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

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

正常合并。

请先 登录 后评论