【问题标题】:How to stop projects with compilation error being checked to SVN如何停止将编译错误检查到 SVN 的项目
【发布时间】:2019-08-27 04:00:48
【问题描述】:

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

谢谢

艾丹

【问题讨论】:

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

标签: svn teamcity tortoisesvn


【解决方案1】:

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

以下是这些步骤的高级概述:

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

【讨论】:

  • 感谢 Doug 的全面回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
相关资源
最近更新 更多