そのへんのちらしのうら

調べたこと、学んだこと、おもしろかったこと。

【メモ】ネットワーク上にSVNサーバをたてる

複数名で開発を進めるような場合、ネットワーク上の端末などにSVNリポジトリを構築することが多いと思う。 (backlogとかGitHubとかのクラウドサービスはまた少し話が違うが)

そのとき、ソースをチェックアウトする側のクライアントとは違い、リポジトリはあくまで「サーバ」としての構築が必要となる。

どういうことか。TortoiseSVNの下記のドキュメント参照してみる。

tortoisesvn.net

ネットワークフォルダー上のリポジトリへのアクセス

原理上、FSFSリポジトリはネットワークフォルダー上に配置でき、file://プロトコルを用いて複数のユーザーからアクセスできますが、これは絶対にお勧め しません 。

(略)

file:// アクセスは、ローカルでの1ユーザーのみのアクセスを想定しており、そのようにテストとデバッグを行っています。リポジトリを共有したい場合は、 まさに 適切なサーバーをセットアップする必要がある場面であり、それは見かけほど難しくはありません。

TortoiseSVNは、理論上、リポジトリもクライアントもTortoiseSVNのみで完結できる。そしてこの時は「file://プロトコル」を用いる。

しかし、「複数名によるリソースへのアクセス」という観点からいうと、

  • 誰からも直接アクセスできてしまうことで、リポジトリを壊してしまうことがある。

  • ファイルのロックやアクセス権の管理がうまくできないことがある。 などの問題が生じる。

そこで、サーバーをセットアップし、「svn://プロトコル」「http://プロトコル」でアクセスさせるのが望ましい。

SVNサーバの構築には、たとえば下記が使える。

自分のローカル端末で開発をして、TortoiseSVNでソースのバージョン管理をしていたときは、リポジトリ側(サーバ)もチェックアウト側(クライアント)もローカルなので意識していなかったのだが、ようやく学習した。