2016-08-16 173 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