巨大な(数千のファイル> 1G)ディレクトリ/ trunk /hugeを持つSubversionリポジトリがあり、あまり頻繁に変更されないとします。
/ trunk/hugeを避けてまばらにチェックアウトします。
svn co --depth immediates ^/trunk trunk
for f in trunk/*; do
if [ "$f" != "trunk/huge" ];
then
svn up --set-depth infinity $f;
fi;
done
後日、突然^ / trunk/hugeの下のファイルが必要になります。
それを取得するための標準的な方法は、その「深さ」を変更することです
svn up --set-depth invinity trunk/huge
これは機能しますが
- ネットワーク経由で大量のデータを転送する必要があります
- subverionサーバーにより多くの負荷をかける
- 本当に長い時間がかかります
以前に^/trunk / hugeをチェックアウトして、.tar.gzを作成したとします。次に、その.tar.gzをローカルの作業コピーに配置します。単純にそこに置くと、subverionはそれが「不明」であると見なします。例:
svn st
? trunk/huge
深さを無限大に設定しようとすると、trunk / hugeが更新されますが、svnはそれを不明と見なします。
svn up --set-depth infinity trunk/huge
At revision 8655.
svn st
? trunk/huge
この「不明な」ディレクトリが本物の「非スパース」チェックアウトになったことをSubversionに伝えるにはどうすればよいですか?