一部の開発作業を外部委託することを検討しており、使用しているサーバーへのアクセスを許可するのではなく、SVN 資格情報を配布したいと考えています。
ただし、私はこれに少し不快感を覚え、特定のユーザーが実行svn log
されないようにしてファイル履歴を表示できないようにすることが可能かどうかを知りたい.
彼らが本当に必要としているのはco
、ci
とdiff
簡潔な答え
いいえ。
長い答え
すべての標準的な方法は、単一の SVN コマンド (共通の読み取り/書き込み権限を操作する) よりも高いレベル、または低いレベル (単一の svn コマンドに変換された別の DAV コマンドのセット) で機能します。
ここで khmarbaise には MISS ONE がありました
考えと考慮事項
DAV-SVN コマンド マップを (Apache ログと手を使用して) 構築し、DAV レイヤーで有効化および禁止された svn-command が DAV 側で交差していないことを確認できる場合は、「悪い」dav-commands のみを無効化します。しかし、それらにはすべて共通点があると思います(テストされていません!)。
反対に、ある時点から古い履歴へのアクセスのみを制限したい場合 (コマンドを使用して完全に無効にするのではなく、やみくもに不可能だと考えている場合)、アウトソーサーのワークスペースを別のツリーに分割して、パスベースのアクセス制御を使用することができます。
ここで khmarbaise には MISS TWO がありました
少なくとも 2 つの選択肢があるのに、彼は 1) 別の 2) 無関係なリポジトリについてしか覚えていないからです。
両方のソリューションで、ユーザーのログは自分の領域の最初のリビジョンで停止します (古いリビジョンがないか、コピー前に履歴へのアクセスがないため)、マージを使用することで、十分なアクセス レベルを持つユーザーは双方向同期が引き続き可能です。
パスベースの承認を作成する可能性に基づいて、リポジトリの特定の領域へのアクセスを制限できます。これは、アクセスを許可したパスでのみすべての履歴を読み取ることができるわけではないことを意味します。それでいいと思います。それ以外の場合は、レプリカを作成する必要があり、リポジトリ間で変更を複製する必要がありますが、これは SVN では単純な作業ではありません。