Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
Netbeans 请在Mercurial中建议更好的工作流程_Netbeans_Mercurial_Workflow - Fatal编程技术网

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

Netbeans 请在Mercurial中建议更好的工作流程,netbeans,mercurial,workflow,Netbeans,Mercurial,Workflow,我是Mercurial的新手,我开始意识到我的基本工作流程可能不是最有效的工作方式,因为我执行提交的频率太高,功能改进太小,以至于当我需要找到更早的步骤来恢复时,这是非常困难的 以下是我在Mercurial中建立了一个项目并完成了第一次提交后所做的事情 对文件进行一些更改,并使其处于一个小改进有效的状态 hg提交-m“改进A工作” 对同一个文件进行一些更改,并使其处于下一个小改进正在起作用的状态 hg提交-m“改进B工作” 检查是否所有次要改进加起来就是一个次要功能正常工作 hg commit-

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

以下是我在Mercurial中建立了一个项目并完成了第一次提交后所做的事情

  • 对文件进行一些更改,并使其处于一个小改进有效的状态
  • hg提交-m“改进A工作”
  • 对同一个文件进行一些更改,并使其处于下一个小改进正在起作用的状态
  • hg提交-m“改进B工作”
  • 检查是否所有次要改进加起来就是一个次要功能正常工作
  • hg commit-m“功能A有效”
  • 如果我发现在“改进a”中犯了错误,我会打开历史记录(使用Netbeans Mercurial visual插件),将一些代码复制并粘贴到当前版本中,然后从那里重新开始


    这似乎不是一个好的系统-我希望得到任何建议。

    您可以将改进的更改隔离到保持稳定主干的分支中。
    看一看

    工作流模式将是:

  • 创建用于改进的分支
  • 完成改进A和签入的工作
  • 测试更改并在成功时合并回主干
  • 创建改进分支B
  • 完成改进B和签入的工作
  • 测试更改并在成功时合并回主干

  • 如果发现错误,可以放弃分支(或在合并回主干之前纠正分支中的错误)。

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

  • 为要素A创建分支
  • 完成改进工作并承诺
  • 完成改进B的工作并承诺
  • 当该功能似乎正常工作时,将该功能与分支合并回主干
  • 如果您在功能a的改进a中发现错误,请切换到功能a分支并执行以下操作,而不是重新开始:

  • 修复改进并提交
  • 将要素A分支合并回主干

  • 我不同意这种做法。如果不需要并行开发,为什么还要增加分支的复杂性?小的“检查点”提交没有问题。标记可以用来指向重要的提交,这可能更清楚。

    las3jrock:谢谢。为什么你推荐特性的分支而不是特性中的改进?我推荐特性的分支而不是构成每个特性的单个改进,因为这使分支成为存储库(包含项目的整个修订历史)之间的中间抽象级别和单个提交(这是修订历史记录的原子单位)。在此工作流中,相关的提交在分支中分组在一起。在Jon描述的工作流中,似乎每个分支都只包含一个提交,在这种情况下,分支和提交是修订历史的同一单元的冗余表示。不,不,我不想暗示您将使用一个分支进行一次提交-这太可笑了:)。它只是用来指定一个工作单元——一个改进可能是在web表单中添加一个新字段,或者是一个bug修复,或者是一个主要项目本身,这取决于你决定你想要工作的粒度…@Jon:我很确定这不是你的意思,但在最初的问题中,它是这样理解的。我认为我们同意,分支应该在存储库级别和提交级别之间的某个粒度级别上存在,确切的粒度级别由用户决定。;-)