【问题标题】:Eclipse's local history...where are files saved?Eclipse 的本地历史...文件保存在哪里?
【发布时间】:2010-11-01 11:18:16
【问题描述】:

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

我不小心覆盖了项目中的文件,但需要恢复到早期版本。 Eclipse 是否有可能将旧文件缓存在某处?

【问题讨论】:

    标签: eclipse flexbuilder history local


    【解决方案1】:

    完成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 版本中找不到它。有什么想法吗?
    • @Dejel 奇怪:它仍然被描述为在 wiki.eclipse.org/… 中使用该路径。也许你可以问一个单独的问题?
    • 当我不小心覆盖和更新了一个我想继续导致文件删除然后忘记类名的文件时,这让我很傻...作为按日期浏览排序的任何人的提示modified 允许您在尝试查找要恢复的缓存时找到最新的缓存。
    • 你能帮忙吗?我将我的工作区文件夹从 Eclipse Mars 升级到 2020-09,现在,本地历史记录不起作用。该项目是SVN的一部分。在新的工作区上,它工作正常。
    • @tarekahf 不确定,我从不升级我的工作区,我总是为每个 Eclipse 版本创建单独的工作区,以避免任何意外。
    【解决方案2】:

    尝试在eclipse中右键文件,选择替换为->本地历史。

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

    但更重要的是,正如其他答案中所指出的,请务必将您的文件置于版本控制中! SVN 很容易设置(你不需要服务器;它可以只使用文件系统);即使您不与他人分享,也可以使用它。

    提示:每当您听到自己说“是!”时,请检查您的所有代码。 10 分钟后,你会说“我是怎么搞砸的?”

    【讨论】:

    • 您的提示非常简洁地解释了如何/为什么为那些不使用版本控制的人。我可能不得不偷那个。
    • 我较新的 Eclipse 版本,您也可以使用 Replace With -> Previous from Local History,当您确定需要返回一个更改时,这会更快。例如,如果您需要恢复意外还原的更改。
    • 谢谢,真的很有帮助,非常感谢
    【解决方案3】:

    如果由于意外删除或 svn/cvs 覆盖而丢失了完整的包结构,请选择项目> 右键单击​​> 从本地历史记录恢复 => 选择文件。

    【讨论】:

    • 如果文件已被删除,则此方法有效,但是从历史记录中大量回滚许多文件的编辑?目前我找到的唯一方法是右键单击每个文件以检查历史记录中是否有文件!
    【解决方案4】:

    VonC 的答案包含查找代码备份位置所需的所有信息。我只想补充一点,如果您使用的是 Mac 或 Linux,您可以执行以下操作:

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

    这将找到包含特定字符串(即“class Foo”)的文件的所有版本,并按日期/时间对它们进行排序以轻松找到最新版本。

    【讨论】:

      【解决方案5】:
      【解决方案6】:

      打开 CVS 视图,您应该会看到一个本地历史过滤器。然后,您应该能够右键单击正确的版本并获取内容或进行手动比较和合并。我不确定 Eclipse 的默认设置是为了保留本地历史记录,但如果你迅速采取行动,你很有可能能够取回你的东西。

      【讨论】:

        猜你喜欢
        • 2014-04-29
        • 2015-08-09
        • 2013-10-19
        • 2023-04-10
        • 2012-01-26
        • 2019-05-29
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        相关资源
        最近更新 更多