開発マシンに Subversion がインストールされていて、チームで作業していない場合、 fileの代わりにsvnプロトコルを使用する必要がある理由はありますか?
12 に答える
1 台のマシンで自分で作業している場合、私の経験では file:// プロトコルを使用しても問題なく動作します。私のチームがリモート サーバーから Subversion を使用していたときでさえ、私は自分の個人プロジェクト用にファイル ベースのローカル リポジトリをセットアップしていました。別のマシンからアクセスする必要がある場合は、サーバーベースのリポジトリをセットアップするという手間がかかります。また、Mercurial のような分散システムを見ることもできます - 私は退職する直前に私の最後の会社でそれを評価していました - しかし、svn と hg を混在させることはまったくうまくいきません。
後でいつでも Subversion サーバーを追加して、それが file:// リポジトリを指すようにすると、すぐに svn:// にアクセスできるようになります。
プロトコルは問題ではありません。さまざまな種類のメディアを介した転送が許可されるだけです。重要なのはリポジトリのコンテンツです。
あとで SVNSERVE をインストールするのはかなり簡単です。
ただし、使用するサブバージョン ソフトウェアのフレーバーは重要です。たとえば、あるベンダーがメタデータを ".svn" ではなく "_svn" に保存するようにしている場合は、最初に互換性を確認する必要があります。
関連する SVN ツールの使用が有効になっている限り、問題はないはずです。他の人が言ったように、後でいつでもサーバーをセットアップできます。
私のヒントは、ToroiseSVNと Collabnet サブバージョン クライアントを使用できることを確認することです。
SVN サーバーのセットアップを今すぐ簡単にするための重要なヒントの 1 つは、仮想アプライアンスを使用することです。つまり、Subversion が事前にインストールされ、(ほとんど) 事前に構成された仮想マシンであり、ほぼプラグ アンド プレイです。ここ、ここ、ここを試すか、「Subversion 仮想アプライアンス」で Google を検索してみてください。
少し前のプロジェクトで、ant を使用してビルドを行っていました。Ant は SVN リポジトリから最新のコードをチェックアウトし、ビルドを実行してから、ビルドの基となったコードの SVN リポジトリにタグを作成します。Ant 自動化は、svn:// プロトコル以外のプロトコルでは機能しないことがわかりました。
したがって、Ant を使用して SVN との対話を自動化する場合は、svn:// プロトコルを使用する必要があります。
ここでは、ファイル ベースおよびサーバー ベースのリポジトリについて言及されています。間違っている場合は訂正してください。ただし、Subversion についての私の理解では、リポジトリはシステム ファイル リポジトリまたは Berkley DB リポジトリのいずれかです。ファイル/サーバーの区別は、実際にはリポジトリへのアクセス方法にあります。つまり、同じリポジトリに、file:/// プロトコルを使用してファイル システム上で直接アクセス (チェックアウト、コミットなど) するか、ssh を使用したプロキシ、svn サーバー、および/または http を使用した Apache を介してアクセスできます。
私が知っていることではありません。ソース管理を使用することは常に費用がかかるため、file:// が何らかの形で劣っていたとしても、セットアップにうんざりしてコーディングを開始するのではなく、実際に Subversionを使用することを意味する場合は、私の本では問題ありません。
私は多くの異なるマシンを使用しているので、パスに svn:// を使用する方が簡単です。それに加えて、ほとんどの場合、svn パスはファイル パスよりも短いため、入力する必要がありません。
同じネットワーク上の複数のマシンで作業することが多く、デスクトップ マシンのリポジトリにすべてを保存したいので、個人的なプロジェクトには svn:// を使用します。
私が知っているものはありません。少なくとも少しは速くなるはずです。
プロトコルよりもサーバーベースのプロトコルを選択する理由は 3 つありfile
ます。
- ネットワーク トラフィックの削減。
ワークステーション上に存在しないリポジトリでファイル プロトコルを使用すると、ファイル全体が書き込まれます。これは、ファイルを処理するデーモンがないとデルタを使用できないためです。
- サーバーベースのプロトコルをインターネット経由で公開できます
これにより、svn
またはhttp
プロトコルを使用するかどうかという問題が残ります。どちらもネットで使えます。Svn
base64 エンコーディングではなく、直接バイナリを使用するという効率上の利点があります。Http
官僚的な妨害に直面して、企業のファイアウォールを介して密輸するのは簡単です。
- 在宅勤務などのクロスドメイン シナリオでのアクセス許可に関する手間が軽減されます。
自宅のワークステーションが企業ドメインの一部ではない可能性があります。Subversion サーバー デーモンは、プロキシとして機能します。これは、ユーザーに代わって I/O 操作を実行するために必要なアクセス許可を持つ認証済みプロセスで実行されます。
たとえ一人で作業していたとしても、私のプロトコルは、個人的なプロジェクトであっても常にソース管理を使用することです。すべてのコード作業の単一のバックアップ ポイントを提供し、考えを変えたり、古いバージョンを取得したりできます。