Svn:ignore本当に大きなフォルダーを無視すると、SVN更新中のパフォーマンスが向上しますか?
私のプロジェクトにはこの非常に大きな(> 600MB)フォルダーがあります。このフォルダー内のファイルはまったく変更しないでください。問題は、「svn update」と呼ばれるたびに永遠に時間がかかることです。更新中にこのフォルダーを無視して、更新プロセスを高速化する方法はありますか?
svn:ignore
は、Subversionリポジトリにまだないファイル専用です。このフォルダはすでにです。
svn update --set-depth exclude
folderName
を使用して、作業フォルダーからこのフォルダーを削除できます。
$ svn update --set-depth exclude bigFolder #Removes "bigFolder" from workdir
D bigFolder
$
次回更新を行うとき、bigFolderは作業ディレクトリに表示されません。戻したい場合は、深さをリセットする必要があります。
$ svn update --set-depth infinity
U bigFolder
U bigFolder/File1
U bigFolder/File2
...
Svn updateを実行して、他のすべてのディレクトリに具体的に言及できます。
svn update dir1 dir2 dir3
または、不要なものをgrep -vで出力します。
svn update `ls | grep -v big_dir`
または、big_dirを別のフォルダーにsvn mvし、ビルドシステムを変更して、他のディレクトリからコンテンツを取得します。
ただやる:
svn up `svn ls | grep -v big_dir`
「svn ls」の使用ローカルに存在するディレクトリとファイルだけでなく、リポジトリから新しいファイルを更新できます。したがって、更新は単に除外するよりも完全です。 「--set-depth exclude」のように、既存のファイルを削除する必要はありません。
@Bill Braskyが言ったこととは別に、1つの提案は、巨大なフォルダーを外部に移動することです。そうすれば_svn up --ignore-externals
作業コピーに巨大なフォルダーが必要ない場合は、スパースチェックアウトを確認できます。
svn checkout repo . --depth empty
svn up other dirs