我正在使用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)
我目前使用的方法是:
是否有人想到更容易,更自动的方式来选择撤消哪个更改以及保留哪个更改?
答案 0 :(得分:2)
Eclipse会保留几天的更改历史记录(在“常规”>“工作区”>“本地历史记录”中的“首选项”中配置)。您可以右键单击文件并选择“与...比较”; “本地历史记录”可以查看文件的两个版本之间的差异。您可以将更改从旧版本复制到当前版本。
从长远来看,您应该使用版本控制系统,例如SVN或GIT。这些Eclipse插件允许您执行类似的“比较”操作 - 但覆盖文件的整个历史记录(假设您定期提交更改)。
答案 1 :(得分:1)
我刚发现这篇论文:
Supporting Selective Undo in a Code Editor将在ICSE 2015大会上展示。
作者以图形方式显示更改历史记录,因此您可以选择要撤消的更改(以及要保留的更改)。
Azurite(可以从here下载并安装)是他们实现的Eclipse插件的名称,它支持选择性撤消和许多其他对开发人员有用的简单功能。