web-dev-qa-db-ja.com

GitリポジトリをEclipseワークスペースの内部または外部に保持する方が良いですか?

私はGitへの移行を開始する典型的なEclipse/Subversionユーザーです。私はgitの基本的な概念を研究し、最初は物事をシンプルに保つために、リポジトリごとに1つのアプローチに固執することにしました。ただし、各プロジェクトのリポジトリを配置する場所を決定する際に、まだ問題があります。

この質問 の回答を確認するのに多くの時間を費やしましたが、その質問の著者は、リポジトリがEclipseワークスペース内にある場合にのみEclipseを使用してリポジトリを管理できると想定していたと思います、もちろん、そうではありません。

しかし、その質問で私を最も驚かせたのは、1つの答え(受け入れられた答えを含む)を除くすべてがEclipseワークスペース内にリポジトリを保持することを示唆したという事実でしたが、1つの答えだけが EGit User Guide は正反対を推奨します。

しかし、実際には、Eclipse/EGitによって実装された多くのアプローチがあり、そのいくつかはEGitの推奨事項と矛盾しているように見えます。

たとえば、New Project Wizardを使用してGitから新しいPHP Projectを作成し、リポジトリがリモートの場合、Eclipse/EGitはプロジェクトを作成します。フォルダーをEclipseワークスペースに配置し、リポジトリ(.git)をプロジェクトフォルダーに配置しますこれは、Eclipseワークスペース内にすべてがカプセル化されたままになるため、実際に必要な最終結果です。

ただし、New Project Wizardを使用してローカルのGitリポジトリを選択した場合、Eclipse/EGitはリモートリポジトリの場合のようにリポジトリを複製しません。代わりに、そのリポジトリをプロジェクトの場所として、その場所に.projectおよびその他のメタを作成し、プロジェクトと同じ名前の作業コピー内に新しい(一見不要な)フォルダも作成します(たとえば、~/git/blah/blah)。その余分なフォルダーを削除すると、最初の例と同じ構造になります。唯一の違いは、プロジェクトフォルダーがEclipseワークスペースフォルダーのサブフォルダーではないことです。 。~/git/blah)。このアプローチは、EGitユーザーガイドの推奨事項を順守しているように思えますが、技術的な観点から見ると、これが最初の例とどのように違うのかわかりにくいのです。

これらの不可解な観察を考えると、これらのアプローチのそれぞれを使用してどのような経験があり、EGitユーザーガイドの推奨事項を無視した場合の落とし穴はどのようなものか疑問に思います。

38
JamesG

両方のソリューションの意味は、リンクしたユーザーガイドに直接記載されています。私はあなたにその部分を伝えることができます

これにより、パフォーマンスの問題が発生する可能性があります

残念ながら非常に真実です。したがって、ワークスペース内に膨大な数のファイルを含むgitディレクトリがある場合、多くのgit操作は、すべてのファイルをスキャンするため、IDE私の現在の20000ファイルでは、これはすべてのコミット、すべてのスイッチ、...に10〜20秒待機することを意味します。

空き時間のアクティビティでは、幸いなことに(ワークスペースの外にgit作業ディレクトリを持っている)他の代替手段を使用できますが、すべてがより素早く感じられ、マージと切り替えが楽しいです。

したがって、大規模なプロジェクトに行く場合は、ワークスペース外のgitディレクトリを最初の選択肢として検討してください。

25
Bananeweizen

元のポスターと同じ移行を行っていますが、Egitの推奨事項に同じ疑問が表されている別のスレッドを見つけました: gitリポジトリをHomeまたはEclipse Workspaceに保存する必要がありますか?

@JamesGこれがあなたのレイアウトですか?

~/projectA/workspace/.metadata
~/projectA/workspace/subproj1/.project
~/projectA/workspace/subproj2/.project
~/projectA/subproj1/.git
~/projectA/subproj1/file1
~/projectA/subproj2/.git
~/projectA/subproj1/file2
3
Michel