【问题标题】:How to undo / redo selective parts of code?如何撤消/重做代码的选择性部分?
【发布时间】:2015-07-09 01:55:39
【问题描述】:

我正在使用 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. 手动比较不同版本,解决冲突。

有没有人想出更简单、更自动的方法来选择要撤消的更改和保留的更改?

【问题讨论】:

    标签: eclipse undo undo-redo


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我刚找到这篇论文:

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-05-31
        • 2021-03-27
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 2015-08-19
        • 1970-01-01
        • 2014-04-15
        • 1970-01-01
        相关资源
        最近更新 更多