Eclipse的本地历史记录...文件保存在哪里?

29

有人能解释一下Eclipse的本地历史是如何工作的吗?

我在一个项目中不小心覆盖了一个文件,但需要恢复到以前的版本。 有没有可能Eclipse在某个地方缓存了这个旧文件呢?

6个回答

43
为了补充CurtainDog的回答: 从eclipse FAQ中得知,每次你在Eclipse中修改一个文件时,旧内容的副本会保存在本地历史记录中。随时可以从历史记录中比较或替换任何旧版本的文件。尽管这不能替代真正的代码库,但它可以在你意外更改或删除文件时提供帮助。本地历史记录还有一个优点是其并不是真正为此而设计:当工作空间出现灾难性问题或磁盘错误破坏了工作空间文件时,历史记录也能帮助你。作为最后的手段,你可以手动浏览本地历史记录文件夹,找到你丢失的文件的副本,这有点像使用Google的高速缓存来浏览不再存在的网页。 每个文件修订版都存储在历史记录文件夹内具有随机文件名的单独文件中。历史记录文件夹的路径位于你的工作空间内。
.metadata/.plugins/org.eclipse.core.resources/.history/

你可以使用操作系统的搜索工具来查找你需要的文件。
注意,如果您需要将本地历史记录导入到一个新的工作区中,您需要同时拥有以下两个文件:
  • .metadata/.plugins/org.eclipse.core.resources/.history
  • .metadata/.plugins/org.eclipse.core.resources/.project
这样才能在新的工作区中拥有可用的本地历史记录。

我在Juno版本中找不到它。有什么想法吗? - Dejell
@Dejel奇怪:在http://wiki.eclipse.org/FAQ_Where_is_the_workspace_local_history_stored%3F中仍然被描述为使用该路径。也许您可以提一个分开的问题? - VonC
1
当我不小心覆盖并更新了我想要保留的文件,导致文件被删除,然后忘记了类名时,这帮助了我。作为一个提示,浏览按修改日期排序可以让您找到最近的缓存,以便在尝试找到要恢复的缓存时使用。 - William Jarvis
你能帮忙吗?我将我的 Eclipse Mars 工作区文件夹升级到 2020-09,现在本地历史记录无法工作。该项目是 SVN 的一部分。在新的工作区中,它可以正常工作。 - tarekahf
1
@tarekahf 不确定,我从来没有升级我的工作空间,我总是为每个Eclipse版本创建单独的工作空间,以避免任何意外。 - VonC
哦,谢谢。我刚刚解决了它。我必须在首选项下的本地历史记录部分的限制中增加文件大小。 - tarekahf

22

在eclipse中,尝试右键单击文件,选择 Replace With -> Local History。

如果有历史记录可用,将显示一个编辑时间列表。

但更重要的是,正如其他答案指出的那样,请务必将您的文件放入版本控制中!SVN非常容易设置(您不需要服务器;它可以直接使用文件系统);即使您不与他人分享,请使用它。

提示:每当您听到自己说“是的!”时,请提交所有的代码。10分钟后,您会问自己:“我怎么弄糊涂了?”


1
你的建议非常简洁地解释了那些不知道如何/为什么使用版本控制的人应该怎样做。我可能会借鉴这个建议。 - Frank Riccobono
1
在更新的 Eclipse 版本中,您还可以使用“替换为”->“从本地历史记录中的上一个版本”,当您确定只需要返回一次更改时,这比较快。例如,如果您需要恢复意外撤消的更改。 - Dcortez
谢谢,非常非常有帮助,非常感谢。 - Stephen Kennedy

8

如果因为意外删除或svn/cvs覆盖导致整个包结构丢失,选择项目 > 右键单击 > 从本地历史记录还原 => 选择文件即可恢复。


如果文件已被删除,则此方法有效,但如何从历史记录中批量回滚多个文件的编辑?目前我找到的唯一方法是右键单击每个文件以检查历史记录中是否有文件! - Tobia

3

VonC的回答已经包含了你需要找到代码备份位置的所有信息。我只想补充一点,如果你使用的是Mac或Linux系统,可以按照以下步骤操作:

$ cd [WORKSPACE]/.metadata/.plugins/org.eclipse.core.resources/.history/
$ grep -rl "class Foo" . | xargs ls -lt

这将查找包含特定字符串(即 "class Foo")的文件的所有版本,并按日期/时间排序,以便轻松找到最新版本。


2

0

打开CVS视图,您应该会看到一个本地历史过滤器。然后,您应该能够右键单击正确的版本并获取内容或进行手动比较和合并。我不确定Eclipse默认设置是什么,但是如果您迅速采取行动,有很大的机会恢复您的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接