【问题标题】:How to use Git pull requests when testing on feature branch在功能分支上测试时如何使用 Git 拉取请求
【发布时间】:2016-07-24 00:00:53
【问题描述】:

我们刚刚升级到最新版本的 BitBucket,它允许我们禁用直接推送到主分支。现在我们使用的是 Github Flow 流程的一个版本(即从主分支克隆功能分支),并且只能使用拉取请求从功能/错误修复分支合并到主分支。 我们希望在仍然在功能分支上工作的同时,在合并到主分支之前执行我们的测试(一些是自动化的,一些是手动的)。我正在考虑按如下方式使用拉取请求周期:

  1. 为功能发出拉取请求
  2. 团队批准拉取请求
  3. 测试功能
  4. 测试完成后,合并到 master

如果我们等到推送到主服务器后再进行测试,这可能会导致错误和回归也被引入主服务器。

我的问题是:由于其他用户总是有可能使用其他拉取请求合并到主节点,这意味着我的拉取请求可能必须重新设置为主节点的更新状态,如果有时间的话在最初打开拉取请求后经过。这意味着要么再次执行测试,要么在至少一个未完成的拉取请求处于活动状态时锁定存储库。但是锁定存储库也有它的问题,因为没有其他人能够工作。

还有其他人遇到过这个问题吗?

谢谢, 保罗

【问题讨论】:

    标签: git testing github merge pull-request


    【解决方案1】:

    是的,对于任何使用功能分支的团队来说,合并到 master 的争用都是一个问题。

    如果团队可以独立工作且无需协调,则团队工作速度最快,因此锁定通常不是一个好的解决方案。

    通常的解决方案是这样的:

    1. 在其功能分支上开发功能
    2. 测试功能
    3. 根据 master 重新定位功能分支(或将 master 合并到功能分支中)
    4. 如果存在重大合并冲突,请返回 2。
    5. 将功能分支合并到master
    6. 回归测试大师

    当功能较小且测试速度较快时,此工作流程效果最佳,因此

    • 尽可能自动化您的测试。努力会得到回报。彻底的自动化验收测试将同时用于功能的合并前测试和 master 的回归测试。

    • 计划您的功能,以便可以开发和合并以小块掌握。在某种程度上,这可以通过找到独立有用的更大功能的部分来完成,这样可以独立地部署和公开给用户。否则,在功能完成之前开发和部署功能的各个部分而不向用户公开它们,使用feature toggle 隐藏在功能完成之前用户可见的部分功能。

      李>

    有时仍然需要锁定存储库以进行无法合并的非常大的更改,例如框架升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 2021-08-08
      • 2016-03-31
      • 2017-12-05
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多