Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何停止向SVN检查编译错误的项目_Svn_Teamcity_Tortoisesvn - Fatal编程技术网

如何停止向SVN检查编译错误的项目

如何停止向SVN检查编译错误的项目,svn,teamcity,tortoisesvn,Svn,Teamcity,Tortoisesvn,好的,我正在使用C#、team city和SVN担任构建管理角色 开发人员不断地检入有编译错误的代码。我假设开发人员在检查之前已经在本地机器上编译了代码,并且成功了。但显然,SVN中缺少了一个add。有什么方法或工具可以防止这种情况发生吗 谢谢 Aidan我知道的唯一方法是让您提交更改(而不是提交到主干),然后只允许生成机器人更新主干(主干对其他所有人都是只读的)。这意味着开发人员不是运行svn up从主干中获取更改,而是运行svn merge^/your/trunk获取最新更改 以下是这些步骤

好的,我正在使用C#、team city和SVN担任构建管理角色 开发人员不断地检入有编译错误的代码。我假设开发人员在检查之前已经在本地机器上编译了代码,并且成功了。但显然,SVN中缺少了一个add。有什么方法或工具可以防止这种情况发生吗

谢谢


Aidan

我知道的唯一方法是让您提交更改(而不是提交到主干),然后只允许生成机器人更新主干(主干对其他所有人都是只读的)。这意味着开发人员不是运行
svn up
从主干中获取更改,而是运行
svn merge^/your/trunk
获取最新更改

以下是这些步骤的概要:

  • 为项目的每个开发人员工作设置一个区域。例如,如果
    ^/proj/trunk
    是trunk,则
    ^/proj/users
    可以包含每个用户的目录。这是开发人员工作的地方。当他们想从主干更新时,他们运行
    svn merge^/proj/trunk
    。当他们想要提交到trunk时,他们会提交到他们的用户目录
  • 设置生成bot和该生成bot的svn用户
  • 使用将对中继的提交限制为除生成bot svn用户之外的任何人
  • (可选)使用限制对
    ^/proj/users
    中每个用户目录的提交仅限于名称与目录匹配的用户
  • 编写一个监视
    ^/proj/users
    的程序,每次发生更改时启动生成bot生成。您可能希望忽略仅是从
    ^/proj/trunk
    合并的结果的提交,以减少生成的数量
  • 如果生成bot成功,则生成bot svn用户将更改合并到trunk中。失败时,编写失败代码的开发人员应收到通知

从Subversion方面,您可以创建一个
预提交
钩子,该钩子触发代码编译并在发现错误时拒绝提交。但这是一个糟糕的主意,因为它只会减慢每个人的工作。我不熟悉TeamCity,但我知道预期的流程是在提交代码后验证代码并发送适当的警报。感谢Doug提供的全面回答