【问题标题】:Why separate tags file in Mercurial为什么在 Mercurial 中单独标记文件
【发布时间】:2011-09-17 18:49:10
【问题描述】:

我一直在阅读有关 mercurial 标签的内容。我可以看到,通常,我们标记一个变更集来标记一个发布点,这些标记也是受修订控制的。

但我无法真正理解拥有.hgtags 文件的想法。这个文件的目的是什么?

【问题讨论】:

    标签: mercurial tags


    【解决方案1】:

    拥有.hgtags 文件允许使用与记录对所有其他文件的更改相同的格式记录对.hgtags 文件的更改。它还允许以用于传输文件更改的相同格式在存储库之间传输标签。

    这允许 Mercurial 实现一个系统来存储对目录的更改,以及一个用于将一堆更改传输到目录的协议,并在传输文件更改时自动处理分支和标记信息。

    它还允许人们通过查看.hgtags 文件的历史记录来查看项目标签的历史记录。

    【讨论】:

    • 缺点包括对hg clone -r <tagname> 的混淆,以及当两个单独的标签被添加到两个单独的分支上时,解决.hgtags 文件中的冲突的不必要要求,这些分支稍后合并。
    • 虽然我理解这些论点,但它似乎也很像“因为它是一种权宜之计”。这也是对标签并不是 Hg 真正一流的部分的承认。
    【解决方案2】:

    两个相关存储库中的标签名称可能有冲突。

    例如标签 A 可能在一个 repo 中的变更集 id X 上,而在另一个 repo 中,相同的标签可能指向变更集 id Y。在合并期间,必须解决此冲突。

    合并期间的冲突通过检查文件和相关修改来解决。

    因此,标签必须存储在 repo 中的普通文件中。

    【讨论】:

      【解决方案3】:

      我实际上根本看不出有一个单独的标签文件有什么用处。应使用“日志”命令很好地查看存储库历史记录(包括标签)。拥有标签文件也违反了一条重要规则:与版本控制系统严格相关的更改不应以任何方式更改存储库。

      【讨论】:

        猜你喜欢
        • 2016-09-26
        • 2020-06-13
        • 2021-10-16
        • 2013-03-05
        • 1970-01-01
        • 2013-01-04
        • 2023-03-15
        相关资源
        最近更新 更多