しばらく時間がかかるsvnを使用して大きなプロジェクトをチェックアウトする必要があるので、それを設定する--quiet
か(-q)
、メッセージが出力されないように設定した方が速いのではないかと思っています。それともそれとは関係ありませんか?
3 に答える
BAUD 300で動作するVT100 端末またはTeletype 端末を使用していない限り、このオプションはおそらくあまり役に立ちません。端末はおそらく、ファイルがサーバーからフェッチされるよりも速くチェックアウトされていることを示しています。--quiet
1.7 より古いバージョンの Subversion を使用していて Windows を使用している場合、Subversion からダウンロードされたファイルをウイルス対策プログラムがスキャンする際に問題が発生する可能性があります。Subversion の古いバージョンでは、各ファイルが 2 回ダウンロードされました。1 回は作業ディレクトリに、もう 1 回はサーバーを気.svn
にせずに使用できるベース バージョンとしてのディレクトリの下にありました。svn diff
多くの Windows ユーザーが、この問題によりチェックアウトが遅いと不満を漏らしていました。1.7 または 1.8 に更新すると、Windows のチェックアウトが大幅に高速化されます。
必要なファイルのみをチェックアウトするスパースチェックアウトを試すことができます。たとえば、リリース ブランチを行っていますが、ブランチ全体をチェックアウトしてから、現在取り組んでいるプロジェクトだけを更新する方が簡単だと思います。
$ svn co --depth=immediates $RSVP/branches/5.2
これにより、ブランチ全体とそのブランチのすべてのプロジェクトがチェックアウトされますが、ブランチのすぐ下のディレクトリのみがチェックアウトされます。プロジェクト名を取得しますが、プロジェクトの下には何もチェックアウトしません。vibortz プロジェクトを更新する必要があります。
$ svn up --set-depth=infinity 5.2/vibortz
これで、この 1 つのプロジェクト内のすべてのファイルがチェックアウトされました。これをさらに進めることができます。
$ svn up --set-depth=immediates 5.2/vibortz
A docs
A src
A dependencies
ドキュメントや依存関係には興味がありませんが、このプロジェクトのバッファー コードには興味があります。
$ src up --set-depth=infinity 5.2/vibortz/src/buffer
A src/buffer
A ...
プロジェクト全体 (実際、ブランチ全体!) を Subversion 作業ディレクトリとして持っていますが、実際に興味のあるファイルだけをチェックアウトしています。必要に応じて、追加のディレクトリを更新できます。
ほとんどの場合、プロジェクトのチェックアウトに時間がかかるという話を聞くとき、それはコンパイル済みのバイナリがプロジェクトにチェックインされているためです (これは問題ありませんが、ここでは説明しません)。プロジェクト全体をチェックアウトしたいが、バイナリは必要ありません。繰り返しますが、まばらなチェックアウトがうまくいくかもしれません。BASH の場合:
$ src co --depth=immediates $URL/trunk/vibortz
A vibortz/binaries
A vibortz/docs
A vibortz/resources
A vibortz/source
リソースとソースが欲しいだけです:
$ src up --set-depth=infinity vibortz/source vibortz/resources
バイナリ以外のすべてのディレクトリが必要な場合は、次のようにします。
$ shopt -s extglob # Kornshell users don't have to do this...
$ cd vibortz
$ src up --depth=infinity !(binaries)
ディレクトリを更新から!(binaries)
除外します。バイナリを除くbinaries
すべてのディレクトリが更新され、展開されます。
間違いなく YES、標準出力を使用すると、常にプロセスが遅くなります。最近、10 ~ 15 GB のデータのダンプ、ロード、およびもちろんチェックアウトとコミットを行いましたが、常に -q を使用して作成しているため、処理時間が大幅に短縮されます。
場合によります。ボトルネックがサーバーからのファイルの取得である場合、違いはありません。しかし、遅いコンソールを使用している場合、制限要因は端末にラインを吐き出す速さかもしれません。
典型的なケースでは、違いが生じる可能性はほとんどありませんが、違いが生じるまれなケースがあります (低速リンクを介してリモート マシンに SSH 接続し、そこでチェックアウトして、小さなファイルがたくさんあるローカル リポジトリに移動します)。