リポジトリの読み取り専用コピーを作成するためにsvnsyncを読んでいますが、リポジトリの読み取り専用コピーを持つことの意味がよくわかりません。マスターが何らかの理由でダウンした場合、読み取り専用コピーを読み取り/書き込みにして、人々がそれにコミットできるようにすることはできますか?そうでない場合、読み取り専用コピーのポイントは何ですか?
4 に答える
svnsyncによって維持される読み取り専用リポジトリは、通常、マスターリポジトリのほぼリアルタイムのバックアップを提供するように設定されています。svnsync以外の方法でコピーを変更すると、svnsyncが正しく機能しなくなるため、コピーは読み取り専用と見なされます。
メインリポジトリが失われた場合、バックアップリポジトリが新しいマスターになる可能性があります。すべての実用的な目的で、コピーはsvnsyncの最後の実行時の元のマスターと同じです。バックアップリポジトリからファイルをコピーして以前と同じように続行することで、元のリポジトリを再構築できます。
または、元のマスターに基づいて作業ディレクトリを持つクライアントはsvn switch --relocate
、コピーを指すようにサーバーURLを更新する操作を実行し、問題なく作業を続行できます。もちろん、クライアントがバックアップを使用してコミットを開始すると、それはsvnsyncコマンドのターゲットではなくなり、事実上新しいマスターリポジトリになり、新しいバックアップを作成する必要があります。
あなた自身のプライベート リポジトリについて話していると仮定すると、データベース、ソース コード リポジトリ、または xyz のいずれかの読み取り/専用コピーを使用する 2 つの理由は、負荷を軽減し、パフォーマンスを向上させることです。
リポジトリに対して何らかの種類の分析を実行している場合、たとえば、すべてのリビジョンに触れるプロセスなど、メインのリポジトリに高い負荷がかかり、開発者のパフォーマンスが低下する可能性があります。読み取り専用コピーを同期することは、その負荷を軽減する方法の 1 つであり、重要なユーザーの機能を低下させることなく仕事を完了させることができます。
レイテンシーについても同様の議論を行うことができます。VPN や同様のリンクを介して別のオフィスからプルするよりも、ローカルの読み取り専用コピー (基本的にはキャッシュ) からプルする方が簡単です。
読み取り/書き込みを同期できるかどうかはわかりませんが、コミットを許可せずにリポジトリのコンテンツをチェックアウトしたい場合がよくあります。以下は、私が働いている場所で私たちが行っていることと非常によく似た2つのケースです。
これがパブリック オープン ソース プロジェクトであると想像してください。誰にでもチェックアウトを許可できますが、パッチまたはバグ レポートによる貢献のみを期待できます (また、コピーはパブリック サーバーに配置され、メインのプロジェクトは保護されたプライベート ネットワークに保持されます)。
自動化されたビルド システム (または何らかの分析ツール) で svn エクスポートを介して svn のコンテンツを使用したい場合がありますが、常に同期するのではなく、メインの svn が安定した状態にある場合にのみ同期することを選択します (いくつかの中間コミットがコードがコンパイルされていない不安定な状態のままにしておきます)。
お気に入りのオープンソース プログラム ソースのバックアップを作成してください :)。