[英]Embedding a github repository inside a mercurial (kiln) repository - how integrated is it?
总结的问题:
github托管的子存储库是否可以在汞/窑存储库中使用,如果可以,当通过hg clone
或hg commit
命令对父汞存储库进行操作时,它们是否可以自动更新/克隆?
详细问题:
从我的问题在这里得到了很好的回答之后,我的一些第三方代码在我不久前从github上的开源工作下载的文件夹中。 因为在那个阶段我没有使用版本控制,所以那些文件夹中只有标准文件夹,而现在这些标准文件夹已被合并为Mercurial的子存储库。
这显然是不理想的,因为一方面,新版本的库可能已修复了错误,或者我希望将来使用新功能。 我可能还需要在本地自定义一些库。
通过阅读此链接 ,我可以了解到有关那些git服务器url(和修订版)的信息,因此我可以直接从其父存储库中克隆github托管的库。
我的意思是,当我克隆父(水银)存储库时,这些文件将从github上拉出,而不必使用git单独进行管理?
还不清楚的是,如果我这样做的话,可能会发现代码可能需要从该github克隆的存储库中进行自定义,我是否需要使用git来管理本地文件的修订,还是由Merurial做?通过代理? 例如id我要hg commit -S
mercurial代表我调用git来处理吗?
我的意思是,当我克隆父(水银)存储库时,这些文件将从github上拉出,而不必使用git单独进行管理?
是的,包含子存储库的Mercurial存储库的克隆也会触发该子存储库的克隆。 它确实发生在更新上 。 Mercurial会注意到.hgsub
文件,并为您发出所需的hg clone
和git clone
命令。 它使用.hgsubstate
的信息确切了解要签出的修订版本。
子存储库可以托管在任何地方。 对于声明为的Git子存储库
foo = [git]https://github.com/user/repo.git
Mercurial只会发出相应的克隆命令:
git clone https://github.com/user/repo.git foo
然后,您有责任稍后进入foo
库并根据需要使用Git提取新的提交。 提取/拉出新提交后,可以进行顶层提交,以在.hgsubstate
文件中记录子存储库的新状态。 使用hg summary
可以查看子仓库在这种意义上是否脏。
[...]我需要使用git来管理本地文件的修订,还是由mercurial通过代理来完成? 例如id我要hg commit -S mercurial代表我调用git来处理吗?
当您编辑文件并进行顶级hg commit
,Mercurial将确保首先提交subrepo(如果使用hg commit -S
或ui.commitsubrepos=True
)。 如果您进行顶级推送,那么Mercurial将始终首先推送子仓库,以便您在服务器上始终具有一组一致的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.