2

非エンジニアリング グループに、リポジトリ内の特定のディレクトリへの読み取り/書き込みアクセスを許可する必要があります。理想的には、ツリー全体ではなく、このディレクトリのコレクションだけをチェックアウトする必要があることを望んでいます (ただし、その部分は必須ではありません)。

私が理解できない問題は、(a) リポジトリ全体に散在する多数 (ほぼ 100) のディレクトリと、(b) これらのディレクトリが 'branches/branch-name' の下にあるという事実に対して、これを処理する方法です。 URL パス。下にトランク、ブランチのタグが付いた標準のレポがあります。

rw の問題で authz を試しましたが、フル パスを使用する必要があるようです。フルパスとは、ブランチ情報を含むことを意味します。多数のブランチを使用しているため、これは非現実的です。ブランチを変更するたびに、authz ファイルを更新する必要がありました。

svn:externals またはシンボリック リンクを使用して、ディレクトリのグループを 1 つのスペースにまとめることを考えました。ただし、パスにブランチ情報を含めるという問題を回避する方法はまだわかりません。

これらのソリューションのいずれも、私の問題を解決するワイルドカードを許可していないようです。多分私は何かが足りない。

svnperms.py スクリプトがあることは知っていますが、フック スクリプトを使用せずにこれを解決したいと考えていました。必要であればそうしますが、フック スクリプトを必要としない解決策はありますか?

更新 OK、今のところ興味がないので、私が試していることについて詳細を追加します.

大きな問題は、膨大な数のディレクトリ (それぞれが error_messages と呼ばれる) であるため、どうにかしてそれらを統合できればと思います。svn:externals を使用してこれを解決しようとしています。

project
  \ 
   + branches
     \
      + branchA
       \
        + error_messages <<-- new directory

ここで、svn:externals prop を新しい error_messages ディレクトリに追加し、次のような相対パスを使用します。

../path/to/first/error_messages first
../path/to/second/error_messages second
etc.

これは、さまざまな error_messages ディレクトリすべてを 1 つの場所にチェックアウトするのを容易にする方法としてうまく機能します。ただし、承認には役立ちません。

branchA/error_messages パスを authz ファイルに追加して、情報チームに読み取り/書き込みアクセスを許可できることを望んでいました。しかし、SVN はあまりにもスマートで、相対パスの承認をチェックします。したがって、authz に path/to/first、path/to/second などがない限り、Info ユーザーはアクセスできません。

私は本当に立ち往生していますか?この方法を使用するには、リポジトリ全体への読み取り/書き込みアクセスを Info チームに (少なくとも authz ファイルで) 許可し、pre-commit フックを使用してそのアクセスを制限する必要があるようです。

ちなみに、いくつかの環境の詳細を指定する必要がありました。

  • サーバー: Linux、svn 1.7
  • クライアント: Linux svn 1.7、Windows for Info チーム、おそらく smartSvn 1.7
  • "svn:" プロトコル、http なし
  • 認証用の SASL

そのため、svn:externals が機能しない (実用的ではない) ことを確認した後、代わりにシンボリック リンクを作成できるのではないかと考えていました。ただ、インフォチームはWindowsクライアントを使うので、解決も無理だと思います。

4

0 に答える 0