如何撤消/重做代码的选择部分?

时间:2015-04-29 16:30:36

标签: eclipse undo undo-redo

我正在使用Eclipse。

当我们开发这样的代码时会发生很多事情(假设它是按顺序开发的,从上到下):

Part 1 (*)
Part 2
Part 3
Part 4 (*)
Part 5

但我们只是发现第1部分和第4部分(标有(*))是错误的,其他部分都很好。问题是我们如何在不撤消其余部分的情况下撤消这两个部分(1和4)?

如果我们可以有选择地撤消,那就太好了。请注意,简单地将代码还原到版本1会丢失第2,3和5部分,它们是正确的部分并且应该保留在代码中。另请注意,通常这些部分在一个或两个代码块中混合(不在单独的块中)。

示例:

Part 1: Add method f1(x, y) and move some code from main() to f1() --> incorrect (should be reverted)    
Part 2: Add method f2(a, b, c, d) --> correct (should remain)    
Part 3: Change another part of main() implementation --> correct (should remain)       
Part 4: Change f2 signature to f2(s, n) --> incorrect (should be reverted)       
Part 5: Change body of f2 --> correct (should remain)

我目前使用的方法是:

  1. 在某处保存最新版本的副本(例如,在临时版本中) 文本文件),然后撤消到第1部分之前,并添加这些正确的部分 从临时文本文件到源代码。
  2. 手动比较不同版本,并解决冲突。
  3. 是否有人想到更容易,更自动的方式来选择撤消哪个更改以及保留哪个更改?

2 个答案:

答案 0 :(得分:2)

Eclipse会保留几天的更改历史记录(在“常规”>“工作区”>“本地历史记录”中的“首选项”中配置)。您可以右键单击文件并选择“与...比较”; “本地历史记录”可以查看文件的两个版本之间的差异。您可以将更改从旧版本复制到当前版本。

从长远来看,您应该使用版本控制系统,例如SVN或GIT。这些Eclipse插件允许您执行类似的“比较”操作 - 但覆盖文件的整个历史记录(假设您定期提交更改)。

答案 1 :(得分:1)

我刚发现这篇论文:

Supporting Selective Undo in a Code Editor将在ICSE 2015大会上展示。

作者以图形方式显示更改历史记录,因此您可以选择要撤消的更改(以及要保留的更改)。

Azurite(可以从here下载并安装)是他们实现的Eclipse插件的名称,它支持选择性撤消和许多其他对开发人员有用的简单功能。