Tortoise CVS - 防止用户在分支中进行更改?

时间:2009-01-20 16:58:23

标签: version-control cvs tortoisecvs

如何阻止开发人员将更改提交到CVS中的特定分支?

最近,一位开发人员将代码提交到主分支,让我做了很多回滚来做; - (我该如何防止这种情况?

3 个答案:

答案 0 :(得分:1)

将此特定分支的此用户的访问权限更改为只读。

老实说,我没有线索。但这可能有所帮助:CVS Access Control List Extension Patch

答案 1 :(得分:1)

可能不是这种情况,但如果您在服务器上运行CVSNT,则只需使用cvs chacl命令即可​​。有关详细信息,请参阅http://cvsnt.org/manual/html/chacl.html。我有一段时间没有使用TortoiseCVS,但我想在那里甚至可能有一个GUI选项(你的服务器仍然必须是CVSNT才能实际工作)。

请注意,TortoiseCVS只是CVSNT客户端的图形前端。如果您提供了有关服务器的一些信息,您的问题将更容易回答。

答案 2 :(得分:1)

这种方法对我有用: -

1)创建一个shell脚本,检查针对参数提交的分支。为方便起见,我将它存储在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文件,但它可以防止错误,而不是故意破坏事物。