2016-08-16 175 views
2

Eclipse是否提供(可能通过插件)搜索本地历史记录的功能?搜索Eclipse本地历史记录

例如,我有很多历史文件,并且不想通过它们全部拖拽,因为我知道我想要的版本是最近包含字符串“slithy toves”的版本。


[更新]回答本网站类似问题的人还没有读过这个问题 - 或者这个问题措辞不妙。

我是不是寻找去当地的历史(它知道如何找到)和手动搜索每个条目,版本的版本。我想要一个单一的搜索功能,这将为我做到这一点。


[更新++]引用的问题含有一个可接受的答案。在那里提供的唯一解决方案涉及创建一个虚拟项目,这比我关心的更加复杂。


注:如果有帮助的人,我发现当地的历史可以

Workspace\.metadata\.plugins\org.eclipse.core.resources\.history\ 

找到从中,我可以用我所选择的任何文件搜索工具

+0

您是否尝试了团队>显示本地历史记录或替换为>来自本地历史记录的元素? – crm86

+1

可能与以下情​​况重复:http://stackoverflow.com/questions/7007666/eclipse-search-in-history – crm86

+0

同意 - 虽然那一个是五年没有得到答案。也许我应该为此提供奖金?或者在http://softwarerecs.stackexchange.com/上询问是否有插件? – Mawg

回答

1

手动搜索本地历史记录

我对该问题的回答是“不,你不能从Eclipse内部进行搜索”。

不过,在this answer到另一个问题,你可以看到(linux)命令行(和它的作用解释)来搜索本地历史结构,如果你知道你寻找的文件中的特定代码(如你表示“slithy toves”):

fgrep -r -c "[slithy toves]" * | grep -v ":0" | cut -d : -f 1 | xargs ls -l 
+0

这看起来像一个全新的应用程序的核心。或者一个到Eclipse的功能请求 – Mawg

+1

@Mawg我们需要撤销两天的本地更改,这种方式很有效。这是一次性的(我希望它是唯一的一次),并期望每个人都能从中吸取教训。太容易的恢复意味着我们不会质疑我们“每周提交一次”的文化。 – manuelvigarcia

1

我发现即当地的历史可以在

Workspace\.metadata\.plugins\org.eclipse.core.resources\.history\ 

从中,我可以使用我选择的任何文件搜索工具。

然而,文件名看起来都像001ad08cc7790016142da217e60cb1a5,所以我不能搜索widget.c :-(

也没有指标,因为我搜索包含001ad08cc7790016142da217e60cb1a5文件,希望能找到一些也许这XML告诉我原来的文件名,具有001ad08cc7790016142da217e60cb1a5的引用,但我发现没有什么:-(

此外,一些保存的文件似乎是二进制的,我不能看到如何配置Eclipse以只保存*.c*.h

+2

我做了一些挖掘,不幸的是将原始文件名映射到历史文件名是非平凡的。该映射包含在' \ .metadata \ .plugins \ org.eclipse.core.resources \ .projects \ \ .indexes \ history.index'中,该文件是一个二进制文件,其中包含从文件名到( UUID,时间戳)对,UUID以二进制格式表示。 ' \ .metadata \ .plugins \ org.eclipse.core.resources \ .history'中的文件名是相同UUID的十六进制字符表示。 – HighCommander4

+0

这是非常有用的信息(+1)。它可以帮助实现一个用于搜索Eclipse历史记录的应用程序。现在,如果只有我有时间...... ;-) – Mawg

+1

如果你决定通过编写这样一个应用程序:阅读'history.index'文件的代码是在http://git.eclipse.org /c/platform/eclipse.platform.resources.git/plain/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/localstore/Bucket.java,在'load()'方法中。看看你应该能够找出确切的文件格式。 – HighCommander4