11

mod_dav_svn についての私の理解が間違っている場合は、修正してください。つまり、基本的に 2 つの目的を果たします。

  1. SVN リポジトリ (ファイルシステム上) をクライアントに公開します。これは次のいずれかです。
    • リポジトリ ブラウザ (例: Web)
    • クライアントコマンドラインプログラムである「svn」コマンド自体
  2. リポジトリ ブラウザとして機能して、リポジトリを便利な方法で表示できるようにします

ポイント1については、次の仮定は正しいですか?

  • mod_dav_svn を使用してリポジトリが公開されるときはいつでも、http://またはhttps://形式のリポジトリへのアクセスが使用されます。
  • svnserve を使用している場合、リポジトリへのアクセスに はsvn://形式が使用されます
    • この場合、mod_dav_svn は追加の用途を提供しません。

ポイント 2 については、Trac のリポジトリ ブラウジング機能を使用する場合、mod_dav_svn が提供するリポジトリ ブラウジング機能を使用する必要はありませんか?

mod_dav_svn は、ここで概説していない他の目的に役立ちますか? 別の言い方をすれば、svnserve と Trac を使用することのデメリットはありますか?

mod_dav_svn は非常によく使われている印象があるので質問します。何が足りないのでしょう。

4

2 に答える 2

15

ポイント #2: HTTP ブラウジングを忘れてください。それはほんの少しのボーナスです。FisheyeViewVC、または (私のお気に入りの) Sventonなどの必要性を置き換えるものではありません。

Subversion サーバーに Apache の http を使用することには、いくつかの欠点があります。

  • 遅いです
  • 設定が難しくなります

次に、利点があります。

  • 通常はファイアウォールによってブロックされない標準ポート (80) を使用します。
  • LDAPおよびActive Directoryと統合可能
  • 更新とチェックアウト (ユーザーパスワードを含む) を暗号化するHTTPSを使用できます。
  • 複数のリポジトリで同じ Apache httpd インスタンスを使用できます。ではsvnserve、インスタンスごとに 1 つのリポジトリしか実行できません。1 つのシステムに複数のリポジトリがある場合はsvnserve、非標準ポートで各プロセスを実行する必要があります。

私の個人的な見解: 企業環境を実行している場合、HTTP または HTTPS プロトコルを使用する利点は欠点を上回ります。あなたが小さなレポジトリとあなたとあなたの友人について話しているのであれば、svnserveオーバーヘッドが少なく、セットアップが簡単なため、私は単純に実行します。ただし、そのような状況では、Github を使用するだけで、気にする必要はありません。

私は自分のマシンで個人用ソース管理システムとして Subversion を実行しており、そのインスタンスで svnserve を使用しています。


ありがとう、いくつかのフォローアップの質問。1) svn サーバーの URL に svn://server/repo としてアクセスすると、ポート 80 も使用されませんか? 2) svnserve に対して LDAP 統合を実行できない場合、ユーザーが認証できる唯一の方法は、ユーザーが svn:// の svnserve.conf の password-db によって参照されるファイルにいる場合、または svn のシェル アカウントを持っている場合です。 +ssh://? 3) https:// によって提供される同じ保護を svn+ssh:// で提供することはできませんか、それとも違いがありますか? (申し訳ありませんが、Enter キーを押すたびに送信される段落をここに配置することはできません。) –</p>

  1. デフォルトではポート 3690 を使用しています。これは実行時に変更できますがsvnserve、svn URL もそれを反映する必要があります。

  2. かなり真実です。svnservepasswd ファイルを使用するほとんどの場所。ただし、バージョン 1.5 以降、SASLを使用できます。しかし、私は誰もそれを使用しているのを見たことがありません。

  3. はい、ssh+svn:// は暗号化されたパケットを提供します。ただし、SSH は実装が難しい場合があります。基本的に、svnserve プロセスを生成して、その特定のユーザーに対して実行する必要があります。つまり、各ユーザーはリポジトリへの直接の読み取り/書き込みアクセスが必要です。ユーザーごとに umask を設定し、全員が所属する Subversion Unix グループを作成する必要があります。次に、これらのユーザーはリポジトリ ファイルに直接アクセスできるため、リポジトリ サーバーにログオンしないようにします。オンライン マニュアルに詳細が記載されています。ただし、最終的には、Unix サーバーと Unix クライアントでのみ機能します。Windows クライアントには SSH がないため、インストールする必要があります。何度か試しましたが、https://の方がずっと簡単です。

于 2011-06-03T17:08:40.720 に答える
2

svnserve のシンプルさは、特に Windows に展開している場合は、迅速でダーティなインストールを簡単に行うことができます。

ただし、多くのパスワードを記憶する必要があり、組織で使用されているものと同じ SSO メカニズムを Subversion リポジトリで使用したい場合は、mod_dav_svn と組み合わせた Apache の認証メカニズムを使用すると非常に役立ちます。

Subversion 1.7 より前では、mod_dav_svn のパフォーマンスはひどいと言われ、svnserve よりも遅いことが知られていました。Subversion 1.7 は、mod_dav_svn の使用をより快適にする、より高速でシンプルな HTTP プロトコルを提供すると思われます。

于 2011-12-27T08:55:08.883 に答える