29

誰かがEclipseのローカル履歴がどのように機能するかを説明できますか?

プロジェクト内のファイルを誤って上書きしましたが、以前のバージョンに戻す必要があります。Eclipseの古いファイルがどこかにキャッシュされている可能性はありますか?

4

6 に答える 6

43

カーテンドッグの答えを完成させるには:日食FAQから

Eclipse でファイルを変更するたびに、古い内容のコピーがローカル履歴に保持されます。いつでも、ファイルを履歴から古いバージョンと比較または置換できます。
これは実際のコード リポジトリに代わるものではありませんが、誤ってファイルを変更または削除した場合に役立ちます。
ローカル ヒストリには、実際には設計されていないという利点もあります。ヒストリは、ワークスペースに壊滅的な問題が発生した場合や、ワークスペース ファイルを破損するディスク エラーが発生した場合にも役立ちます。
最後の手段として、ローカルの履歴フォルダを手動で参照して、失われたファイルのコピーを見つけることができます。これは、Google のキャッシュを使用して、存在しない Web ページを参照するのと少し似ています。

各ファイル リビジョンは、履歴フォルダー内のランダムなファイル名で個別のファイルに保存されます。ワークスペース内の履歴フォルダーのパスは次のとおりです。

.metadata/.plugins/org.eclipse.core.resources/.history/

オペレーティング システムの検索ツールを使用して、探しているファイルを見つけることができます。


ローカル履歴を新しいワークスペースにインポートする必要がある場合は、次の両方が必要になることに注意してください。

  • .metadata/.plugins/org.eclipse.core.resources/.history
  • .metadata/.plugins/org.eclipse.core.resources/.project

その新しいワークスペースで機能するローカル履歴を持つことができます。

于 2009-06-09T12:55:50.020 に答える
22

Eclipse でファイルを右クリックして、[置換] -> [ローカル履歴] を選択してみてください。

利用可能な履歴がある場合は、編集時間のリストとして表示されます。

しかし、もっと重要なことは、他の回答で指摘されているように、ファイルを必ずバージョン管理してください! SVN のセットアップは非常に簡単です (サーバーは必要ありません。ファイル システムを使用するだけです)。他の人と共有していない場合でも使用してください。

ヒント: 自分が「はい!」と言うのを聞いたら、すべてのコードをチェックインしてください。10分後、あなたは「どうやってそれを台無しにしたの?」と言うでしょう。

于 2009-06-09T14:11:40.677 に答える
8

誤って削除したり、svn/cvs を上書きしたために完全なパッケージ構造が失われた場合は、プロジェクトを選択 > 右クリック > ローカル履歴から復元 => ファイルを選択します。

于 2010-11-23T02:04:52.983 に答える
3

VonC の回答には、コードのバックアップの場所を見つけるために必要なすべての情報が含まれています。MacまたはLinuxを使用している場合は、次のようなことができることを簡単に追加します。

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

これにより、特定の文字列 (つまり、「class Foo」) を含むファイルのすべてのバージョンが検索され、日付/時刻で並べ替えられて、最新のバージョンが簡単に検索されます。

于 2018-10-31T14:49:43.767 に答える
2

リンクを使用できますhttp://wiki.eclipse.org/FAQ_Where_is_the_workspace_local_history_stored%3Fは非常に役立ちます

于 2013-10-15T14:54:56.883 に答える
0

CVS ビューを開くと、ローカル履歴のフィルターが表示されます。その後、正しいバージョンを右クリックしてコンテンツを取得するか、手動で比較してマージすることができます。ローカル履歴を保持するためのEclipseのデフォルトが何であるかはわかりませんが、迅速に行動すれば、元に戻すことができる可能性は十分にあります.

于 2009-06-09T12:35:00.903 に答える