Version control 乌龟CVS-阻止用户提交分支中的更改?

Version control 乌龟CVS-阻止用户提交分支中的更改?,version-control,cvs,tortoisecvs,Version Control,Cvs,Tortoisecvs,如何防止开发人员将更改提交到CVS中的特定分支 最近,一位开发人员将代码提交到主分支中,这给我留下了很多要做的工作-(如何防止此情况发生?将此用户对此特定分支的访问权限更改为只读 老实说,我没有任何线索。但这可能会有所帮助:可能不是这样,但如果您在服务器上运行CVSNT,您只需使用cvs chacl命令即可。有关详细信息,请参阅。我已经有一段时间没有使用Ortoisecvs了,但我想其中甚至可能有一个GUI选项(您的服务器仍然必须是CVSNT才能真正工作) 请注意,TortoiseCVS只是CV

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


最近,一位开发人员将代码提交到主分支中,这给我留下了很多要做的工作-(如何防止此情况发生?

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


老实说,我没有任何线索。但这可能会有所帮助:

可能不是这样,但如果您在服务器上运行CVSNT,您只需使用
cvs chacl
命令即可。有关详细信息,请参阅。我已经有一段时间没有使用Ortoisecvs了,但我想其中甚至可能有一个GUI选项(您的服务器仍然必须是CVSNT才能真正工作)


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

这种方法对我很有效:-

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
然后,这将导致脚本为所有签入运行。它将分支名称作为参数传递。脚本会将参数与正在签入的代码的分支进行比较,如果参数匹配,则会引发错误。如果要锁定多个分支,请将多行添加到CommitteInfo


显然,如果开发人员真的想提交某些内容,他们可以破解commitinfo文件,但这可以防止错误,而不是故意破坏内容。

请告诉我如何做到这一点?一点填鸭式的操作不会伤害任何人;-)如果您使用的是windows,则只准备好存储库目录,在linux上,使用chmod更改访问权限。这将防止“意外”提交。