请在Mercurial中建议更好的工作流程

时间:2009-09-20 18:39:11

标签: netbeans mercurial workflow

我是Mercurial的新手,我开始意识到我的基本工作流程可能不是最有效的工作方式,因为我经常执行提交,而且功能改进非常小,以至于我需要时找到一些早期的步骤来恢复,这是非常困难的。

这是我在Mercurial中设置项目并完成第一次提交后的操作。

  1. 对文件进行一些更改并使其处于小改进正常的状态
  2. hg commit -m "improvement A works"
  3. 对同一个文件进行一些更改,并使其进入下一个小改进的状态。
  4. hg commit -m "improvement B works"
  5. 检查所有次要改进是否能够使单个次要功能正常工作。
  6. hg commit -m "feature A works"
  7. 如果我发现“改进A”中出现了错误,我打开历史记录(使用Netbeans Mercurial可视插件)并将一些代码复制并粘贴回我当前版本并从那里重新开始。

    这似乎不是一个好的系统 - 我会很感激任何建议。

3 个答案:

答案 0 :(得分:10)

我同意Jon的观点,即分支是解决方案,但我会为功能创建分支,而不是为构成功能的各个改进创建分支。工作流模式将是这样的:

  1. 为功能A创建分支。
  2. 完成改进工作A并提交。
  3. 完成改进B和提交的工作。
  4. 当该功能似乎正常工作时,将功能A分支合并回主干。
  5. 如果您在功能A的改进A中发现错误,而不是重新开始,则切换到功能A分支并执行以下操作:

    1. 修复改进A并提交。
    2. 将功能分支合并回主干。

答案 1 :(得分:7)

您可以将改进的更改隔离到保持稳定行李箱的分支中 看看Branch wiki page

工作流程模式将是:

  1. 创建改进分支A
  2. 完成改进工作A和签到
  3. 测试更改并在成功时合并回主干
  4. 创建改进分支B
  5. 完成改进工作B和签到
  6. 测试更改并在成功时合并回主干
  7. 如果您发现错误,可以放弃分支(或在合并回主干之前纠正分支中的错误)。

答案 2 :(得分:4)

我不同意分支方法。如果不需要并行开发,为什么要增加分支的复杂性?小'​​checkpoint'提交没有错。标签可用于指向重要的提交,这可能更清楚。