開発者が CVS の特定のブランチに変更をコミットできないようにするにはどうすればよいですか?
最近、仲間の開発者がコードをメイン ブランチにコミットしたため、多くのロールバックが必要になりました;-(これを防ぐにはどうすればよいでしょうか?
開発者が CVS の特定のブランチに変更をコミットできないようにするにはどうすればよいですか?
最近、仲間の開発者がコードをメイン ブランチにコミットしたため、多くのロールバックが必要になりました;-(これを防ぐにはどうすればよいでしょうか?
そうではないかもしれませんが、サーバーでCVSNTを実行している場合は、cvs chacl
コマンドを使用するだけです。詳細については、 http://cvsnt.org/manual/html/chacl.htmlを参照してください。私はしばらくTortoiseCVSを使用していませんが、そこにはGUIオプションがあるかもしれません(サーバーが実際に機能するには、サーバーがCVSNTである必要があります)。
TortoiseCVSはCVSNTクライアントの単なるグラフィカルフロントエンドであることに注意してください。サーバーに関する情報を提供すると、質問への回答が容易になります。
この特定のブランチに対するこのユーザーのアクセス許可を読み取り専用に変更します。
正直なところ、私には手がかりがありません。しかし、これは役立つかもしれません: CVS Access Control List Extension Patch
このアプローチは私にとってはうまくいきます:-
1) パラメータに対してコミットされているブランチをチェックするシェル スクリプトを作成します。便宜上これを CVSROOT に保存しますが、CVS サーバーのどこにでも置くことができます。
#!/bin/bash
if [ -f CVS/Tag ]
then
TAG=`cat CVS/Tag`
else
TAG=THEAD
fi
if [ "$TAG" == "T$1" ]
then
echo Cannot commit to $1
exit 1
else
echo Commit ok
fi
exit 0
次に、commitinfo ファイルを変更して、特定のブランチに対してこのスクリプトを実行します。
ALL /cvs/repos/CVSROOT/checkbranch.sh YOUR-BRANCH-NAME-HERE
これにより、すべてのチェックインに対してスクリプトが実行されます。ブランチ名をパラメーターとして渡します。スクリプトは、チェックインされているコードのブランチに対してパラメーターを比較し、それらが一致する場合はエラーをスローします。複数のブランチをロックする場合は、commitinfo に複数の行を追加します。
明らかに、開発者が本当に何かをコミットしたい場合は、commitinfo ファイルをハッキングできますが、意図的に物事を壊そうとするのではなく、間違いを防ぐことができます。