2009-03-24 9 views
6

私はリリースブランチを作成した後、私たちがリリースする前にしばらく時間があったときに、編集のためにブランチ全体を開いて、すべてのファイルをロックすることがあります。リリースブランチ。PERFORCEのブランチをロックするには?

良い方法がありますか?私の現在のやり方では、ロック機能を誤って使用しているように思えるかもしれませんが、ブランチを使わずに誰かがコードをチェックするのを防ぐ良い方法があります。私はP4を保護していますが、このPERFORCEインスタンスの管理者ではなく、潜在的に100行の保護ファイルを扱うことも面倒です。

アイデア?

答えて

0

他の回答で説明されているように、おそらくP4 protectはほとんどの人にとって正解です。

私の組織では、管理者になることはできません。そうするために、管理者以外のユーザーが書き込みアクセス権を持っているテキストファイルを読み取り、ブランチがリストに表示されているかどうかを確認するトリガースクリプトをPERFORCEに入れてください。 このように、p4 protectのような管理者アクセスは必要ありません。

12

私はビルドエンジニアとしてこれを常にやっています。私は読み取り専用に樹木への皆のアクセスを制限するためには「p4守る」を使用:(。グループの全員が「適切に定義されていることを仮定して)

super group everyone * -//depot/project/branch/... 
read group everyone * //depot/project/branch/... 
super user me * //depot/project/branch/... 

最初の行は、ブランチにすべてのユーザーのすべての権限をクローズ

2行目は、すべてのユーザーに対して読み取りアクセス許可を再設定します。

最後の行は私だけのすべての権限を再確立します。

+0

これを行うにはPERFORCE管理者になる必要がありますか?また、デポ全体の保護ファイルは1つだけですが、扱いにくいのですか? 1つのタイプミスとデポ全体が正しく機能しませんか?これらが私が保護するための代替手段を見つけようとしていた理由ですが、もしそれが唯一の方法であれば、 –

+1

あなたは保護を変更するには管理者でなければなりません(それはPERFORCEの管理者の定義です。 )変更が受け入れられる前に、ファイルのエラーがチェックされます。私は自分の保護の中に数百のエントリーを持っていますが、それは自分のビジネス要件に合っているので、きれいで自明です。 – Sniggerfardimungus

2

p4 protectは間違いなく良い方法です - これはそのためのものです。すべてのユーザーをグループにまとめることを強くお勧めします。保護テーブル内のグループのみを使用することをお勧めします。

あなたが好きな粒度で保護することができますので、扱いにくいわけではありません。また、2008.1のサーバーリリースには、わずかに異なる方法で何ができるかを指定できる新しい保護機能が備わっています。変更メモ:

#152278 ** 
    'p4 protect' now allows specification of permission 'rights'. 
    Previously, 'p4 protect' only allowed using permission levels 
    which include the specified access (ie 'read') and also all 
    of its lesser permissions (ie 'read' = 'read' + 'list'). 
    Permission rights make it possible to deny individual rights 
    without having to re-grant lesser rights. The new 
    permission rights are '=read', '=branch', '=open', 
    and '=write'. This functionality was previously undocumented, 
    and is now fully supported for 2008.1 

あなたが本当に&ロック解除これをロックする管理者であることを持つに問題がある場合は、2007.3で導入された「グループ所有者」機能を見てみる必要があります。これにより、非スーパーユーザーがグループに人を追加することができるようになります。&保護テーブルと組み合わせてください。私。サイト管理者が保護テーブルを設定し、 "Rel 1.0 Authorized"という名前のグループに権限を制限し、グループの所有者にしてください。そのグループからユーザー(またはサブグループ)を追加および削除して、アクセスを制御できます。

トリガーオプションは可能ですが、最初にトリガーを設定するには管理者である必要があります。また、すべての投稿のパフォーマンスに影響を与える可能性があります。これは注目すべきものです。しかし、トリガーの主な問題は、その目的のために設計された組み込み機能、つまり保護テーブルをエミュレートするためにそれらを使用することです。そして、あなたが安全であることを望むなら、参照ファイルを変更する他の誰かを防ぐ何らかの方法を見つける必要があります。既存の機能をエミュレートするのはちょっとした作業のようです。

2

その他の回答の1つに少し追加されています。最初に、すべてのユーザーを含むグループ「everyone」を設定します。これをp4 protectに追加してください

write group everyone * -//depot/project/1.0/... 
read group everyone * //depot/project/1.0/... 
write group 1.0 * //depot/project/1.0/... 

これにより、書き込みアクセスが許可されているユーザーを追加できるグループ "1.0"を作成できます。

サーバー2008.1を使用している場合は、これを行うことができます。

最初の行は、グループeveryoneからの書き込みアクセス(読み取りおよびリストではない)のみを削除します。

2

現代のPERFORCEでこれを行う方法は、ローカルシステムの適切な場所で更新されるストリームの名前付きブランチを使用することです。また、ストリーム間のマージやコピーの際に正しいことをするための権限が与えられます。

ストリームの所有者だけがチェックインできるようにストリームを制限することもできます(ストリームをロックして、所有者以外の誰もそのプロパティを編集できないようにすることもできます)。 http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.codelines.html#codelines.streams

関連する問題