2

私には、約5のさまざまなプロジェクトと、約15のさまざまな開発者がいます。プロジェクトの中には、破壊されているものとそうでないものがあります。すべての開発者はTortoiseSVNを使用してWindowsベースのマシンで作業しており、プロジェクトのコードはクラシックaspとasp.netのミッシュマッシュです。すべてのプロジェクトを破壊し、読み取りと書き込みの両方のすべての開発者が認証されたアクセス権を持つための、最も応答性が高く、便利で、管理が簡単な方法のように、最良のものは何ですか?

考慮すべきことのいくつかは、svnserveまたはapacheを介して提供することです。これは、速度の懸念、アクセス/ユーザーとパスワードの管理の容易さ、および追加のファイアウォールポートを開く必要があることを意味します(svnserveの場合)

また、1つのリポジトリに複数のプロジェクトを配置することと、リポジトリごとに1つのプロジェクトを配置することのメリット/デメリットも考慮する必要があります。リビジョンの不一致はそれほど問題ではありませんが、複数のプロジェクトが1つのリポジトリにある場合、ログを取得するのに時間がかかりすぎる可能性があります。ただし、これはユーザー管理の容易さによって相殺されますか?

4

5 に答える 5

4

• すべてのプロジェクトに対して 1 つのリポジトリを使用することをお勧めします。これにより、開発者のアクセスの設定がはるかに簡単になります。さらに、単一のリポジトリをバックアップするだけで済みます。それだけでなく、プロジェクト間でファイルを簡単にコピー (およびそれらのファイルの履歴を保持) することもできます。これはおそらくそれほど頻繁には発生しませんが、発生した場合は便利です。新しいプロジェクトの作成は、'svn mkdir' と同じくらい簡単です。

また、単一のリポジトリを使用しても、大きな損失はありません。好きなように、各プロジェクトへのアクセス許可を引き続き構成できます。

svn ディレクトリ構造は次のようになります。

projects/
    proj1/
        trunk/
        branches/
        tags/
    proj2/
        trunk/
        branches/
        tags/
    ...

• プロジェクトの規模は?特にネットワーク接続が高速な場合は、HTTPS 経由で svn を使用すると非常にうまく機能します。HTTPS は、かなり普遍的なアクセス システムでもあります。数百または数千のファイルを常にチェックアウトしている場合を除き (または、数千のリビジョンを含むファイルに対して Blame を実行しようとしている場合を除き)、速度の違いはあなたにとって価値がないかもしれません。弊社ではsvnserveを使ってkerberosチケットで認証を行っていますが、こちらの方が設定が大変です。

于 2009-02-26T23:47:02.590 に答える
3

私がお勧めします

  1. svnserve ではなくApacheです。十分に高速で、ファイアウォールとプロキシに対応しており、ユーザー admin はどちらの方法でも同じように機能します。また、ブラウザでリポジトリを参照できることも非常に便利です。

  2. トランク/ブランチ/タグを含む各プロジェクトのフォルダーを含む、1 つのリポジトリーのみ。これは当初考えていたよりもはるかに柔軟で、多くの場合、トランク/ブランチ/タグ用のサブディレクトリは必要ありません。単一のリポジトリを管理する方がはるかに簡単で、バージョン管理があるため、ユーザーが他のプロジェクトなどを台無しにすることを心配する必要はありません。

于 2009-02-26T23:49:32.537 に答える
1

比較的高速な回線を使用している場合は、SSL を使用して Apache 2 を介して SVN を実行することをお勧めします。ファイアウォールの問題はなく、ユーザー認証はいくつかの方法で行うことができます。

私は別の大陸でホストされている SVN アカウントを持っています。SSL はそれほど高速ではありませんが、私たちが話しているソース コードであり、あまり多くのデータ転送が行われていないため、受け入れられます。より近いサーバーを使用している場合、パフォーマンスはまったく問題ないと確信しています。

複数のリポジトリ: パフォーマンスの問題よりも構成の問題の方が悪いと思います。リポジトリを 1 つだけ保持することで、構成を最小限に抑えることができます。

于 2009-02-26T23:39:03.653 に答える
0

私が考えることができる安全な方法は 2 つしかありません。SSH トンネル経由で svn を使用するか、svn を使用して Web サーバー経由で SSL 対応の HTTP 経由でプル/プッシュします。

各プロジェクトの標準のトランク/ブランチ/タグ形式をリポジトリ レイアウトとして使用して、各プロジェクトを独自のリポジトリに保持します。それぞれに独自のコンテナがあるため、レイアウトがすっきりしています。また、Subversion データベースの 1 つが破損したり破損したりしても、すべてのプロジェクトのすべての作業に影響するわけではありません。

于 2009-02-26T23:28:39.717 に答える
0

複数のプロジェクトと単一のプロジェクト:

コードが共通で、ファイルが移動する場合は、1 つのリポジトリを使用します。コードが分離されている場合は、多く使用します。次のことを覚えておいてください。

  1. 単一のリポジトリにより、ファイルの移動とディレクトリの名前変更が簡単かつ制御されます
  2. リポジトリを変更すると、そのリポジトリのどこでもリビジョン番号が上がります
  3. 開発者の物理ディレクトリ構造は、svn 構造とは異なる場合があります

認証

Apache を使用します。常に認証するように Apache を構成する場合は、SSL は必要ありません。

<Location /svn/test>
    DAV svn
    SVNPath /svn/test
    <LimitExcept GET PROPFIND OPTIONS REPORT>
       AuthType Basic
       AuthName "Authorization Realm"
       AuthUserFile /svn/passwd
       Require valid-user
    </LimitExcept>
</Location>

これらのルールを使用して、チェックアウト時にパスワードを要求するかどうかを決めることができます。パスワードはその 1 つのファイル /svn/passwd に保存されます。

と...

トラックも使用します。Subversion とうまく統合され、開発者が Subversion から離れたインターフェイスを使用して、ファイルや変更セットなどを確認できます。

于 2009-02-27T00:25:53.773 に答える