在我的项目中,我有一个依赖性作为子库(没有写访问权限)。我想在这个子库中添加一些个人定制——可能使用mq.
我也希望能够只是克隆主回购来构建它。目前我必须:
- 克隆repo-自动克隆子repo
- 手动克隆子存款的所有补丁队列
如何摆脱步骤2?如果没有外部脚本,这可能吗?(如果有什么不同的话,我会使用比特桶)。
一个概念是使子repo不是您没有写访问权限的repo,而是基于它们的repo克隆您自己的repo。
cd mycloneshg克隆http://notmydomain.com/their-repo他们回购的克隆
在项目的.hg/hgrc
中,您使用[subpaths]
部分将其URL映射到本地克隆:
[subpaths]
http://notmydomain.com/their-repo = ../my-clone-of-their-repo
然后,您最终使用他们的回购的本地(读写)克隆来创建回购,否则您可以对其进行只读访问。这有几个好处:
- 更快--您只检查本地存储库中的所有操作
- 可写--您可以在
myproject/their-repo
中编辑directoy并提交和推送(到您的本地克隆)
当你想合并他们的上游更改时,你只需要进入/我克隆了他们的repo和hg pull
和hg merge
他们的更新到您的自定义中。