6
A
回答
2
这可能是可能的,但有点棘手。你必须基本写你自己的tag
实用程序(也许作为一个Mercurial扩展),以帮助收集所需的额外信息并对hg tag
进行额外的调用。但是,在编写扩展时,我对API没有太多了解,所以我提供的任何想法都将基于直接使用命令调用hg
。
默认情况下,当您在主存储库上提交时,首先提交子存储库。然后,它需要新的变更ID为每个subrepo并把它们在.hgsubstate
文件中这样的格式:
77ba00000fe8e9ca033d97dc07b85a50dd106837 nested
递归标签将需要得到.hgsubstate
文件的内容,因为它是在变更你正在主存储库中进行标记。你可能会想到hg revert
,但这不是一个好主意,因为它可以很容易地清理你的工作目录(hg
不喜欢在.hgsubstate
上执行它)。你最好的选择是修改hg export
,并解析.hgsubstate
文件中+
行的结果差异。
然后,您将从每个这些人中获取changset id和subrepo名称,以便拨打hg -R <subrepopath> tag -r <id> <tag>
。当然,最后标记主要回购。
这仍然有潜在的问题,你必须保持意识或弄清楚如何生活。例如:如果您在主要的回购仓库中承诺但不在一个或多个subrepos上会发生什么情况?现在,您在主要回购库上有多个变更集,其中.hgsubstate
在子索引中列出了相同的变更集标识。因此,如果您在主repo上标记两个变量,则subrepo上的变更集将包含2个标签。
我正在使用TortoisHg 2.0.5 w/Mercurial 1.8.4。自行标记子库不会产生任何需要在主库上进行提交的情况,它应该大部分工作正常。
相关问题
- 1. 递归cte - 标记所有叶子
- 2. 使Mercurial存储库中的.hgignore可供所有subrepos使用?
- 3. 如何将现有的Mercurial存储库转换为使用子存储库并保持历史记录不变?
- 4. SQL:递归地选择所有子记录的总和
- 5. 移动本地Mercurial存储库到Bitbucket
- 6. Mercurial本地存储库备份
- 7. 全局指定所有Mercurial存储库的用户名?
- 8. 递归地使用XPath递归地选择子节点?
- 9. 具有bitbucket子库的Mercurial存储库 - 如何防止推送
- 10. mysql存储过程不一致地递增所有记录
- 11. 如何使用本地托管的rhodecode mercurial git存储库
- 12. 使用Mercurial将本地克隆推送到远程存储库
- 13. 如何备份本地Mercurial存储库并使用rebase?
- 14. 如何在中央CVS存储库本地使用mercurial?
- 15. 有没有办法使用Mercurial存储库作为Git子模块? (更新)
- 16. 适用于本地存储库的Node.js Mercurial HG库
- 17. JSP标记递归
- 18. FTP上的Mercurial存储库
- 19. Mercurial分布式存储库
- 20. “零”一个mercurial存储库
- 21. Clone Mercurial存储库到public_html
- 22. 优化Mercurial存储库
- 23. Mercurial提交新存储库
- 24. 更改为mercurial存储库
- 25. 移动Mercurial存储库
- 26. Mercurial储存库架构
- 27. 使用存储过程的SQL递归
- 28. 将具有子模块的git存储库转换为Mercurial?
- 29. xslt如何递归地更改子节点的标记名称
- 30. 关于Mercurial Security +子库的递归签名