Mercurial 汞释放管理

Mercurial 汞释放管理,mercurial,dvcs,Mercurial,Dvcs,我正在使用mercurial进行源代码控制。我希望有一个主要的开发分支,然后在时间点上对齐,比如说“v1.0”、“v1.01”和“v2.0”,这样我就可以在任何时候拉下,比如说“v2.0”,并粉碎它上的一些bug。我听一些人说我需要标签,一些人说我需要书签,其他人说我需要命名分支,还有一些人说我只需要维护多个克隆存储库 在我看来,多个克隆的repo似乎是一个糟糕的选择,因为我喜欢DVCS的一个方面是,一旦你克隆了“repo”,你就拥有了所有过去的历史,如果你的中央服务器烧坏了,你可以从别人的笔记

我正在使用mercurial进行源代码控制。我希望有一个主要的开发分支,然后在时间点上对齐,比如说“v1.0”、“v1.01”和“v2.0”,这样我就可以在任何时候拉下,比如说“v2.0”,并粉碎它上的一些bug。我听一些人说我需要标签,一些人说我需要书签,其他人说我需要命名分支,还有一些人说我只需要维护多个克隆存储库

在我看来,多个克隆的repo似乎是一个糟糕的选择,因为我喜欢DVCS的一个方面是,一旦你克隆了“repo”,你就拥有了所有过去的历史,如果你的中央服务器烧坏了,你可以从别人的笔记本电脑上完全恢复。如果你的回购协议分散在各地,我觉得你失去了这一好处,除非你希望人们克隆5份回购协议并在本地计算机上维护它们。这让我很担心,因为大多数人都说这是一个很好的方法,但从逻辑上讲,这对我来说毫无意义。(我知道这不是一种正确的备份方式,但不返回服务器就无法完全访问部分回购协议对我来说似乎很奇怪)

所以对我来说,把所有东西放在一起的方法必须是标签、命名分支或书签。然而,我似乎无法区分这些。人们倾向于将书签解释为“有点像标签,但有一些注意事项”,并将分支命名为某种移动标签,可能最好使用克隆

我真的很喜欢git风格的分支(单回购,多分支),但是,我不想求助于奇怪的插件或黑客来使它看起来像git。我想了解正确的善变方式


好处:如何将“小规模”分支机构融入到组合中,即您希望在其分支机构中开发一个小功能?

像Mercurial或Git这样的DVC可以轻松克隆回购协议。这并不意味着您将其用于发布管理工作流

每个人都有完全的mercurial回购,这只是DVCS的一个副作用。这意味着当主存储库丢失时存在冗余

您可以使用DVCS,这样您就可以拥有一个主存储库,在那里您可以推送更改并从中提取更改,就像客户机服务器VCS(subversion)一样,它还有一个额外的优点,即您可以脱机工作

对于发布管理工作流,您仍然应该查看

  • 书签、标签和分支 关于这些主题,有足够的讨论

    下面提供了有关使用克隆、书签和命名分支进行分支的简要信息


    命名分支-在每次提交中,都有一个字段,该字段是提交所针对的分支。除此之外,具有指定分支机构的回购与具有多个头部的回购之间没有区别。合并命名分支时,与常规合并一样,分支名称取自当前活动的分支。这很可能是长期v1.x分支所需要的

    书签-浮动标签,非常像存储库中的tip。只有本地的,除非你做一些边带同步。很适合做功能分支或者一些你需要跟踪正在发生的事情但不需要与他人分享的事情

    标记-如果您需要确切了解v1.0版本发布的内容,则命名为commit good


    我会使用名称分支来开发1.x分支、2.x分支等,然后使用标签来标记实际发布的版本1.0,1.1将在1.x树上完成,然后1.1版本将是其中内容的标签。我不会让书签成为流程的一部分,因为您必须手动同步它们。(注意,mercurial书签的更新版本可以远程同步,尽管它仍然需要用户干预。)

    我从未理解将复制的回购作为匿名分支的想法

    hg分支功能名称
    是我喜欢滚动的方式

    我正在使用mercurial进行源代码控制。我希望有一个主要的开发分支,然后在时间点上对齐,比如说“v1.0”、“v1.01”和“v2.0”,这样我就可以在任何时候拉下,比如说“v2.0”,并粉碎它上的一些bug

    我建议您标记每个发布版本

    如果需要将错误修复发布到以前的版本,则首先需要创建一个命名分支,或者根据版本标记克隆一个新的存储库。一旦你解决了这个bug,你就会把这个bug修复合并回你的主要开发分支

    无论您使用命名分支还是克隆,结果都是一样的:bug被修复,修复被发布到以前的版本,修复被合并到主开发分支中。阅读,尝试这两种方法,然后使用你喜欢的方法。就我个人而言,我为这些长期存在的发布分支使用命名分支,以便每个应用程序发布的所有历史都存储在单个存储库中


    所以。。。将每个版本和分支标记为“按需”。

    您需要标记v1.0、v1.01和v2.0等版本。对于branchy开发(错误修复、功能分支等),您可以使用书签——它们现在在协作使用中得到了很好的支持(请参阅)。如果您需要长期分支机构(即,在可预见的未来,它们将在回购协议中),请使用命名分支机构。它们将是一个很好的选择,例如,对于v1、v2。。。发展的分支

    对于短期和长期分支,您可以单独使用书签或单独命名的分支,但如果可以的话,选择书签已成为标准做法

    另请参见,以获取有关书签和命名分支的区别的快速图形化答案