4

SVN (CollabNet Subversion Edge) と Tortoise SVN を使用して、複数の人が編集している Web サイトを管理しています。

一部のユーザーによる一部のディレクトリへのアクセスを制限したい(データベースの資格情報などを表示できないようにするため)。1 つのディレクトリへの読み取りアクセスのみが必要です。

SVNでこれを行うことは可能ですか?

ありがとう!

編集

XP と Windows 7 が混在して実行されています。サーバーは Windows 2008 上にあります。使用されているプロトコルは http です。

4

4 に答える 4

7

これは、svnaccess.confファイルを使用して実現できます。Windowsドメイン認証を使用していると仮定すると、Windowsユーザーにフォルダーレベルのアクセスを提供する1つの方法があります。(svnaccess.confファイルのサンプルセクション)

[repo:/ trunk / samplefolder]

* =

@repo_restricted_users = r

@repo_super_users = rw

ここで、repo_restricted_usersとrepo_super_usersは、svnaccess.confファイルで以前に定義する必要があるユーザーグループです。

repo_restricted_users = john.doe、tom.riddle

repo_super_users = harry.potter、lord.voldemort

これにより、他のフォルダーを閉じたまま、リポジトリ内のフォルダーsamplefolderのみへの読み取りアクセスが提供されます。お役に立てれば。

于 2010-09-20T07:41:59.487 に答える
3

MikeによってリンクされているSVNブックには、使用可能な認証方法の概要が記載されています。

Windowsを使用していて、SVNサーバーを切り替えてもかまわない場合、VisualSVNサーバーは無料のsvn / Apacheラッパーであり、数分以内にインストールでき、非常に簡単なポイントアンドクリックのユーザー/アクセス管理を提供します。私は何年もそれを使用していて、私はそれが大好きです。

于 2010-09-16T16:38:51.357 に答える
1

svn:externals単一のディレクトリが必要な場合は、そのための2番目/他のリポジトリを作成し、それを「メイン」プロジェクトに含めるのが最も簡単だと思います(これsvn updateにより、他のリポジトリからの更新も取得されます)。

于 2010-09-16T17:28:02.220 に答える
1

pre-commit フックと呼ばれるものを作成することで、プラットフォームに依存しない方法で必要なことを行うことができます。フックの詳細については、svn bookを参照してください。基本的に、ユーザー名と更新のディレクトリの場所が与えられ、トランザクションを受け入れるかどうかを決定できます。

これの良い例は、このサイトにあります。基本的に、subversion に同梱されているスクリプトcommit-access-control.plを使用して、パーミッション チェックを実行します。あなたがしなければならないのは、人々がどこで読み書きできるかを記述する簡単な設定ファイルを書くことだけです。

たまたまApacheでhttpを使用している場合は、本で説明されているauthz_svn Apacheモジュールを使用できます。

于 2010-09-16T16:26:08.940 に答える