数十万のファイル、数千のディレクトリ、多くのGbデータを持つ作業ディレクトリを含むようにリポジトリを設定しました。このディレクトリはsamba共有にあります。私はバージョン管理下にこのディレクトリ内に数十のソースファイルを置いておきたいだけです。私は以下のようなものをgitignoreファイルを設定していると、それが動作多くの無視されたファイルで非常に遅い
:
# Ignore everything
*
# Except a couple of files in any directory
!*.pin
!*.bsh
!*/
操作(例えばコミットなど)のリポジトリには、実行するために、いくつかの分かかります。これは長すぎるため合理的に作業を完了できません。私は、gitが更新されているかもしれないファイルを探しているすべてのディレクトリを辿っているので、減速が起こっていると思う。
あり、私は私が追跡したいファイルを持つ作業ディレクトリ内の唯一の少数の場所があるので、私はこのクエリを使用して検討するファイルのセットを絞り込むしようとした:
*
!/version_2/analysis/abcd.pin
!/version_2/analysis/*.bsh
!*/
これも動作しますしかし、それはまだ適格でないgitignoreほど遅いです。私はそれがキラーである最終行だと推測していますが、どのようにunignoreパターンを非常に特殊なものにしようと試みても、プロセスがコミットするファイルを見つけるために常に最終的なワイルドカード句を含める必要がありました。
だから私の2つの部分の質問は
1)のみ関連含むディレクトリとファイルの種類の非常に狭いセットを含むことによってコミットプロセスをスピードアップするのに役立ちますgitignoreファイルを設定するためのより良い方法はありますです結果?
2)この作業をより効率的にするために必要な、gitやsambaのいくつかの調整がありますか?少なくとも、ないあなたのレポを再構築せずに - あなたは、残念ながら、これについてできることがたくさんありません
おかげで、
トム
なぜこれらの巨大なフォルダの外にファイルを移動し、シンボリックリンクを使用してその中に「保管」しないのですか?次に、実際のフォルダに新しいgitリポジトリを設定することができます。 – manuerumx
'git add -u'はすでにインデックスにあるファイルのみをチェックします。 – Gregg
私はすべてを無視し、手動で目的のファイルをバージョン管理することを考えました。これは、ファイルを追加するのを忘れないようにするためにはあまり望ましくありません。私はこれを使って、バージョン管理の価値があるファイルを自動的に表示することを望んでいました。 – opeongo