返回基础:什么是良好的登记手续?

时间:2011-06-08 19:01:20

标签: version-control process

我的团队一直在我们自己的项目上工作。我编写代码,检查源代码控制,很少有人看到它(最终产品除外)。其他人都遵循相同的基本流程。

团队开始成长,我们正在开展的项目也是如此。我们很快就需要开始一起编写项目代码。这个新人在尝试遵循任何登记过程时都不太成功,导致构建破坏。

我们中的一些人一直在谈论记录我们的流程,这是确保我们所有人都在同一页面上的第一步。这将是轻读,不一定详细“点击此,键入此,现在点击那种”的东西。例如,我们的第一个流程文档是“如何签入代码”。

在我看来,这个过程与......类似。

  1. 在办理登机手续之前,请确认您的代码是否构建并在本地执行。
  2. 获取最新消息。
  3. 手动解决任何冲突。
  4. 确保使用上一步中检索到的最新位在本地构建和执行。
  5. 办理登机手续
  6. 所以,关于这个问题。良好的办理登机手续需要哪些额外的步骤?做这样的事真的有意义吗?我倾向于这么认为,因为假设我们都知道该做什么并没有真正成功。

    谢谢!

3 个答案:

答案 0 :(得分:1)

我敢打赌任何假设用户都会遵循它的程序。人类很少这样做。 但是有一种方法可以鼓励每个人做你想做的事情(以及更多,视情况而定): 1.设置一个持续集成服务器并对其进行配置以编译代码并运行它(与您希望您的人员“在本地执行”的代码相同)。 打破构建是可耻的。这样做取决于文化;有时候只是分享统计数据就可以了,有时你需要通过电子邮件发送任何破坏构建的直接经理,无论如何。

通过这个程序,如果正确实施,每个人都会做所需的事情(例如,如果没有做最新的风险,他们将学会随着时间的推移))。

要考虑的另一个问题是执行同行代码审查,但这个问题实际上取决于团队规模和文化是否有效(尽管根据我的经验,它总是具有成本效益,甚至根本不起作用)。 p>

答案 1 :(得分:1)

为什么不谈论“新人”并告诉他预期的内容,而不是添加流程。当提交清单时,他们需要灵活并为常识腾出空间。我一直在进行四小时构建+两小时自动化测试以提交字符串更改的情况。不要让它变得荒谬。

关于提交的具体规则应该很少。我喜欢这些规则:

  1. 不要提交损坏的代码。它必须按预期编译和运行。
  2. 合并时要小心。
  3. 如果开发人员的提交破坏了构建,那么就会感到羞耻。如果开发人员引入了合并损坏,那么就会感到羞耻。话虽如此,我希望有一些工具来确保事情不会失控。

    • 一旦提交,SCM会立即向整个团队发送提交差异。
    • 立即构建持续集成。根据我的经验,检查每15分钟更换一次是不够的。通过挂钩触发CI构建或每1-5分钟检查一次更改。
    • 通过浏览器轻松访问提交历史记录。

    我也希望每个提交都由其他团队成员签署。一些SCM系统可以帮助完成此工作流程。

答案 2 :(得分:0)

我认为您概述的5个步骤是确保构建不被破坏所必须做的最小步骤。

您可能还希望运行任何代码验证(单元测试,样式警察,fx警察,代码格式化)作为最后一步。您可能还希望在提交之前进行代码审查,或者提交到临时区域以供审阅。

您可能还希望在之后执行干净的检出和构建/测试,因为这可以捕获尚未添加的本地文件。如果你有一个构建服务器,这可能会走得太远,因为它会抓住这个。