【问题标题】:Mq on a subrepo without write access没有写访问权限的子存储库上的 Mq
【发布时间】:2012-08-26 11:01:02
【问题描述】:

我在我的项目中有一个子存储库的依赖项(没有写入权限)。 我想向该子存储库添加一些个人定制 - 可能使用 mq。

我也希望能够克隆主存储库来构建它。目前我必须:

  1. 克隆存储库 - 自动克隆子存储库
  2. 手动克隆子存储库的所有补丁队列

如何摆脱第 2 步?没有外部脚本甚至可能吗? (如果有什么不同,我会使用 bitbucket)。

【问题讨论】:

    标签: mercurial bitbucket mercurial-subrepos mercurial-queue


    【解决方案1】:

    一个概念是使子存储库不是您没有写入权限的存储库,而是基于它们的存储库克隆您自己的存储库。

    cd 克隆 hg clone http://notmydomain.com/their-repo my-clone-of-their-repo

    在您项目的 .hg/hgrc 中,您使用 [subpaths] 部分将其 URL 映射到您的本地克隆:

    [subpaths]
    http://notmydomain.com/their-repo = ../my-clone-of-their-repo
    

    然后,您最终使用您的仓库的本地(读写)克隆来创建您的仓库,否则您将拥有只读访问权限。这有几个好处:

    • 更快 - 您只需检查本地存储库中的所有操作
    • 可写 -- 您可以在 myproject/their-repo 中编辑目录并提交和推送(到您的本地克隆)

    当您想要合并他们的上游更改时,您只需进入 ../my-clone-of-their-repo 和 hg pullhg merge 他们的更新到您的自定义项中。

    【讨论】:

    • 维护我自己的克隆是我不想做的事情。拥有一个外星存储库作为子存储库对我来说是一个巨大的胜利。
    • 拥有一个外星存储库 + 一个 mq 几乎与克隆一个外星存储库相同。事实上,它们在功能上几乎相同。
    • 一个 mq 也是一个需要相同级别管理的 repo。真的,它们几乎是类似的方案,但有不同的门面装饰。
    • 对不起,你的回答没有解决我的问题,对不起,我不能接受,请处理。
    • 我不需要你接受它——它是给下一个有同样问题的人的。我确实希望您能够理解 mq 是什么和不是什么,以及为什么它很少是正确的选择,尤其是考虑到最新版本中的最新(和即将推出的)功能(如阶段、过时等)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2015-11-14
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    相关资源
    最近更新 更多