2

巨大な(数千のファイル> 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

これは機能しますが

  1. ネットワーク経由で大量のデータを転送する必要があります
  2. subverionサーバーにより多くの負荷をかける
  3. 本当に長い時間がかかります

以前に^/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に伝えるにはどうすればよいですか?

4

0 に答える 0