首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Git子资源库添加到Mercurial

将Git子资源库添加到Mercurial
EN

Stack Overflow用户
提问于 2010-10-30 16:27:03
回答 4查看 3.3K关注 0票数 17

我一直在尝试使用bitbucket设置一个项目,它在github上托管了项目依赖项。使用Hg-Git Mercurial插件,我几乎可以做到这一点。

但是,当到了推动的时候,事情就变得麻烦了。

Mercurial subrepositories的文档说明:

2.4推送

当您推送时,Mercurial将自动尝试首先推送当前存储库的所有子存储库。这将确保子存储库中的新变更集在被顶级存储库引用时可用。

但这导致了一个大问题,因为我不想推送所有子存储库(为什么要推?)-我只有读访问权限,所以github不允许这样做。只需要将主存储库推送到远程服务器,但我不知道如何执行此操作。hg希望控制并推送所有子存储库,而不管是否有更改。有什么方法可以绕过这个特性吗?

唯一需要推送的是.hgsub.hgsubstate。一旦它们通过替代路径被推送(更新到不存在子存储库的变更集),就可以更新并从远程存储库中拉出更改,但如果我在对子存储库的变更集上再次推送,整个考验就会重复。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-01 01:51:28

这是不可能的,因为Mercurial的推送方法。这是一个设计错误。

最好的解决方案是更新到子存储库不存在的以前的版本,然后推送。这将绕过Mercurial的限制,并上传必要的.hgsub.hgsubstate文件。这有点不方便,但这是我到目前为止找到的让Mercurial和Git相互协作的最好方法。

也许在未来,Hg-Git会被更新来自动处理这个用例。

票数 4
EN

Stack Overflow用户

发布于 2010-12-01 00:11:38

为了便于将来参考,mercurial的开发分支(以及即将发布的1.8版本)现在支持原生git subrepos。这种特殊的情况实现得非常好,如果不知道git子存储库的远程存储库有当前提交,则从根存储库进行推送只会告诉git子存储库进行推送。

票数 12
EN

Stack Overflow用户

发布于 2010-10-31 04:28:03

我认为你应该使用多个存储库;DVCS这样工作更好。

例如,创建一个包含来自github的依赖项的存储库。你只是为了获取更改而拉入该存储库,而不是推送。然后,您就有了另一个用于项目开发的存储库。在这里你可以自由地做任何你想做的事情。然后,您可以链接到您自己的hg代码库以获取依赖项。

这是如果我正确理解了您的问题和您要做的事情的话:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4057888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档