web-dev-qa-db-ja.com

SVN更新中にフォルダーを無視する

Svn:ignore本当に大きなフォルダーを無視すると、SVN更新中のパフォーマンスが向上しますか?

私のプロジェクトにはこの非常に大きな(> 600MB)フォルダーがあります。このフォルダー内のファイルはまったく変更しないでください。問題は、「svn update」と呼ばれるたびに永遠に時間がかかることです。更新中にこのフォルダーを無視して、更新プロセスを高速化する方法はありますか?

37

svn:ignoreは、Subversionリポジトリにまだないファイル専用です。このフォルダはすでにです。

svn update --set-depth excludefolderNameを使用して、作業フォルダーからこのフォルダーを削除できます。

$ 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
...
53
David W.

Svn updateを実行して、他のすべてのディレクトリに具体的に言及できます。

svn update dir1 dir2 dir3

または、不要なものをgrep -vで出力します。

svn update `ls | grep -v big_dir`

または、big_dirを別のフォルダーにsvn mvし、ビルドシステムを変更して、他のディレクトリからコンテンツを取得します。

10
Bill Brasky

ただやる:

svn up `svn ls | grep -v big_dir`

「svn ls」の使用ローカルに存在するディレクトリとファイルだけでなく、リポジトリから新しいファイルを更新できます。したがって、更新は単に除外するよりも完全です。 「--set-depth exclude」のように、既存のファイルを削除する必要はありません。

9
Fedir RYKHTIK

@Bill Braskyが言ったこととは別に、1つの提案は、巨大なフォルダーを外部に移動することです。そうすれば_svn up --ignore-externals

作業コピーに巨大なフォルダーが必要ない場合は、スパースチェックアウトを確認できます。

svn checkout repo . --depth empty
svn up other dirs
3
manojlds