关闭mercurial中未合并的浪费分支

关闭mercurial中未合并的浪费分支,mercurial,Mercurial,我决定在一家分店开始一项实验 [default] $ hg branch experiment [experiment] $ [... some commits ...] 啊!不行!我想把它扔掉 [experiment] $ hg commit -m "did not work; closing ..." --close-branch [experiment] $ hg update default 要想得到真正的消息- [default] $ [... some commits ...]

我决定在一家分店开始一项实验

[default] $ hg branch experiment
[experiment] $ [... some commits ...]
啊!不行!我想把它扔掉

[experiment] $ hg commit -m "did not work; closing ..." --close-branch
[experiment] $ hg update default
要想得到真正的消息-

[default] $ [... some commits ...]
[default] $ hg push

这是销毁一个实验分支的正确工作流吗?

Mercurial wiki涵盖了该分支的所有选项。简而言之,这些选项包括:

  • 关闭分支机构(如您在原始帖子中所做)
  • 创建不包含死分支的新克隆
  • 使用无操作合并
  • 使用与
    mq
    扩展捆绑在一起的命令

  • Mercurial wiki涵盖了的所有选项。简而言之,这些选项包括:

  • 关闭分支机构(如您在原始帖子中所做)
  • 创建不包含死分支的新克隆
  • 使用无操作合并
  • 使用与
    mq
    扩展捆绑在一起的命令

  • 关闭分支会将其保留在存储库中,并且在下次执行推送操作时,关闭的分支将与其他变更集一起推送

    如果你不想发生这种情况,而且你的分支机构是本地的,就这样做吧


    另一方面,如果您已经推送了实验分支,则剥离它将没有帮助,因此您可以关闭它或进行虚拟合并(或两者兼而有之)。

    关闭分支会将其保留在存储库中,下次推送时,关闭的分支将与其他变更集一起推送

    如果你不想发生这种情况,而且你的分支机构是本地的,就这样做吧


    另一方面,如果您已经推送了实验分支,则剥离它将没有帮助,因此您可以关闭它或进行虚拟合并(或两者兼而有之)。

    关于如何撤消分支,您有两个很好的答案,但更重要的一点是不要将命名分支用于临时概念。命名分支用于“开发”和“稳定”等长寿命实体。对于功能、过期等,您需要克隆、书签或匿名分支。Steve Losh的这篇优秀文章将这三个分支与命名分支进行了对比:

    您可以在此处看到Mercurial项目的类似建议:


    关于如何撤消分支,您有两个很好的答案,但更重要的一点是不要将命名分支用于临时概念。命名分支用于“开发”和“稳定”等长寿命实体。对于功能、过期等,您需要克隆、书签或匿名分支。Steve Losh的这篇优秀文章将这三个分支与命名分支进行了对比:

    您可以在此处看到Mercurial项目的类似建议:


    在我看来,你应该关闭分支机构,忘掉它

    从长远来看,存储库中存在一个“死”分支并没有坏处。与存储库的内容相比,任何给定的分支几乎肯定都是很小的,并且由附加变更集创建的任何附加“噪音”都将相对快速地淡入过去

    但是,通过不担心清理分支,您可以实现两件事:

  • 您不必处理与DVCS中更改历史记录相关的任何潜在问题
  • (更重要的是)您有您尝试的永久记录
  • 第二点是关键——如果分支仍然存在,您实际上可以利用您学到的知识:任何其他开发人员都可以从中学习;如果你学到了其他东西,你可以回去再试一次;你可以通过在历史上看到这个分支来防止再次尝试同样的事情

    很多开发人员都很难在他们的DVC中保存不“原始”的历史记录,尤其是当他们最近来自一个集中的VCS时。*随着时间的推移,我逐渐意识到,“其他”历史记录没有什么不好或错误,事实上,如果保留在周围,它会非常有用


    *我不一定暗示你会落入这两个阵营,只是做一个观察。

    在我看来,你应该关闭分支,忘掉它

    从长远来看,存储库中存在一个“死”分支并没有坏处。与存储库的内容相比,任何给定的分支几乎肯定都是很小的,并且由附加变更集创建的任何附加“噪音”都将相对快速地淡入过去

    但是,通过不担心清理分支,您可以实现两件事:

  • 您不必处理与DVCS中更改历史记录相关的任何潜在问题
  • (更重要的是)您有您尝试的永久记录
  • 第二点是关键——如果分支仍然存在,您实际上可以利用您学到的知识:任何其他开发人员都可以从中学习;如果你学到了其他东西,你可以回去再试一次;你可以通过在历史上看到这个分支来防止再次尝试同样的事情

    很多开发人员都很难在他们的DVC中保存不“原始”的历史记录,尤其是当他们最近来自一个集中的VCS时。*随着时间的推移,我逐渐意识到,“其他”历史记录没有什么不好或错误,事实上,如果保留在周围,它会非常有用

    *我不一定暗示你会落入这两个阵营,只是做一个观察