2012-03-13 16 views
3

最近の質問では、非常に多くのファイル(〜600万)でGitリポジトリの操作を高速化する方法を探しています。私はむしろサブモジュールを使用したくないでしょう。問題は操作がかなり遅いことです。 1つの大きなリポジトリを持つことは可能ですが、リポジトリの一部だけに集中するようGitに指示しますか?私はおそらく疎なチェックアウトを作成することはそれを行うだろうと思ったが、読み取りツリーの操作は疎なチェックアウトファイルで指定されていないファイルを削除するようだと本当に長い時間がかかります。すべてのファイルをその場所に保持し、スパースチェックアウトファイルで指定されたファイル数に比例する読み取りツリーを実行することは可能ですか?Gitをスパースチェックアウトに限定する方法はありますか?

答えて

1

現在のところ、 Gitは最近(1.7+)を追加しました。スパースチェックアウトのサポートはまったくありません.Gitは本当にリポジトリの一部でしか動作しないため、

これは、プロジェクトごとに1つのリポジトリごとのバージョン管理システムとして設計されました。サブモジュールは、多くの大きなサブコンポーネントを持つ「プロジェクト」を処理するために選択されたメソッドでした。

0

まず、サブモジュールの学習と使用をお勧めします。

あなたはできますが、

git ls-tree sha1 
git show sha1:path/to/some/file.txt 

で好きなものをスクリプトと他の低レベルコマンド。

xargs 
grep 
cut 

や配管などのbashコマンドも参照してください。

関連する問題