web-dev-qa-db-ja.com

どのプロトコルですか? svn://またはhttp(s)://?

SVNのネットワークアクセスには、4つの一般的なプロトコルがあります。

svn://repos
svn+ssh://repos
https://repos
http://repos

ウィキペディアのページでは、4つの異なるプロトコルの違いについてあまり言及していません。私はいつもsvn://、セットアップが最も簡単だからですが、違いは何で、どちらが「良い」のでしょうか?

59
Earlz

http://には 真面目な 特に数千の小さなファイルを処理する場合のオーバーヘッド。 SVNで保存された約50,000個のアイコンがあるWebサイトにsvnを使用しました。 HTTPでは、チェックアウトに約20分かかりました。 svn://に切り替えたら、1分もかかりませんでした。これは、HTTPではファイルごとに1つの新しいHTTP要求であるためです。

http://ただし、次の大きな利点があります。通常はファイアウォールを通過します。たとえば、svn://に切り替えたので、ファイアウォールのために大学からリポジトリにアクセスできなくなりました。

SSL/TLSを使用するかどうかの違いに関しては、明らかです。データは暗号化されます。ただし、セットアップはより困難です。

54
Thomas Bonini

svn+sshは、SSHトンネル内で実行されるsvnプロトコルです。クライアントはSSHを使用してリモートサーバーにログオンし、そのトンネルでsvnコマンドをリモートで実行します。私の見解では、svn+sshは、SSHサーバーが既に実行されていると仮定して、そのシステムで起動するサーバーがないため、遠方のシステムでSubversionリポジトリを使用する最も簡単な方法です。

また、svn+sshはSSHの暗号化保護の恩恵を受けます。信頼できないネットワークでは生のsvnプロトコルを使用しないでください。

svn+sshの主な問題は、リモートマシンでシェルアクセスが必要なことです。シェルアカウント全体へのアクセスを許可せずに、誰かにリポジトリへのアクセスを提供することは困難です。そのためには、HTTPベースのメソッドの1つ、つまりhttpまたはhttps(暗号化および認証レイヤーのためにhttpsが望ましい)が必要です。これらの方法は設定がより複雑です(HTTP/HTTPSサーバー、たとえばApacheが必要です)が、リポジトリ管理者はリポジトリのアクセス権を慎重かつ正確に制御できます。

20
Thomas Pornin

https://およびsvn+ssh://は暗号化されているため、安全なデータ(SVNパスワードなど)を送信する場合により安全です。

Gitのようなものであれば、svn+ssh://https://よりも高速になり、svn://http://よりも高速になります。

5
Macha

svn://またはsvn+ssh://は、Subversionリポジトリにアクセスする際に、プレーンHTTPまたはセキュアHTTPSよりもはるかに優れたパフォーマンスと速度を提供しますが、現在ではそうではありません。 svn://またはsvn+ssh://はHTTP(S)よりも高速ですが、違いはSVN 1.6以前のバージョンほど大きくありません。

noHTTP(S)および最新のSubversion 1.7+クライアントおよびサーバーに大きなパフォーマンス問題があります。

Subversion 1.7を使用したHTTP(S)アクセス HTTPv2のおかげで、特に遅延時間の長いネットワーク接続でより高性能になりました(HTTP/2!と混同しないでください)HTTP(S)アクセス用にlibneonからlibserfに切り替えられたSubversion 1.8 およびlibserflibneonよりも優れたパフォーマンスを提供します。

HTTP(S)またはHTTP(S)で動作するSubversionのパフォーマンスに関連すると思われる問題がある場合、HTTP(S)を遅くするネットワーク上のサービスがあるかどうかを調査する必要があります。根本的な原因は、ウイルス対策、アクティブなファイアウォール、またはプロキシである可能性があります。誤って設定されたネットワーク設定は言うまでもありません。そして、最新のSubversionクライアントとサーバーを使用することを忘れないでください!

ネットワークの構成ミスの例を考えると、Windows Updateサイトにアクセスできない切断されたネットワークで動作するクライアントコンピューターに影響を与えるかなり一般的な問題があるようです( http://ctldl.windowsupdate.com/ )。これは広範なシステムサービスに影響を与える重大な問題ですが、エンドユーザーはHTTPSを介してSubversionクライアントを使用しているときに気付いて報告します。問題はパフォーマンスに関連しているように見えますが、そうではありません。詳細については、このStackOverflowスレッドを参照してください: https://stackoverflow.com/a/38499619/761095

4
bahrep

また、http://(Apache + SVN)を使用する場合は、mod_auth_sspiモジュールを追加したWindows認証を使用してユーザーをログインさせることができます。

こちらをご覧ください: http://blog.pengoworks.com/index.cfm/2007/11/1/Configuring-Windows-Authentication-with-Apache-22x-and-Subversion

そのため、(Windows)開発者は1人のユーザー/パスワードを覚えるだけで済みます

4
Ezz

httphttpsは、Subversionサポート用のWebサーバーモジュールによって処理されるため、HTTPベースの認証(.htaccessで構成)を使用して、リポジトリへのアクセスを制限できます)。

3
Vestel