1

開発者が CVS の特定のブランチに変更をコミットできないようにするにはどうすればよいですか?

最近、仲間の開発者がコードをメイン ブランチにコミットしたため、多くのロールバックが必要になりました;-(これを防ぐにはどうすればよいでしょうか?

4

3 に答える 3

1

そうではないかもしれませんが、サーバーでCVSNTを実行している場合は、cvs chaclコマンドを使用するだけです。詳細については、 http://cvsnt.org/manual/html/chacl.htmlを参照してください。私はしばらくTortoiseCVSを使用していませんが、そこにはGUIオプションがあるかもしれません(サーバーが実際に機能するには、サーバーがCVSNTである必要があります)。

TortoiseCVSはCVSNTクライアントの単なるグラフィカルフロントエンドであることに注意してください。サーバーに関する情報を提供すると、質問への回答が容易になります。

于 2009-02-08T00:18:17.777 に答える
1

この特定のブランチに対するこのユーザーのアクセス許可を読み取り専用に変更します。

正直なところ、私には手がかりがありません。しかし、これは役立つかもしれません: CVS Access Control List Extension Patch

于 2009-01-20T17:06:19.500 に答える
1

このアプローチは私にとってはうまくいきます:-

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 ファイルをハッキングできますが、意図的に物事を壊そうとするのではなく、間違いを防ぐことができます。

于 2010-09-09T09:00:44.297 に答える