如何跳过乌龟的subrepo

时间:2011-08-25 15:01:57

标签: mercurial tortoisehg

我正在使用togoise hg,我的存储库包含subrepo。 subrepo非常大,需要很长时间才能更新。

有没有办法更新我的存储库但是跳过更新subrepo?

2 个答案:

答案 0 :(得分:3)

update命令旨在始终在整个存储库上运行。没有选项可以排除子参数。

但是,如果正确构建存储库,您应该能够实现所需。

我希望你遇到这个问题,因为你的项目回购看起来像这样:

parent/
    .hgsub
    .hgsubstate
    subrepo/
    your_project_file.py

通过上述结构,update被强制对您控制的文件(parent)以及您的subrepo进行操作。构建存储库的更好(也更灵活)的方法是:

build_repo/       # top-level repo that is empty except for .hgsub
    .hgsub
    .hgsubstate
    your_repo/    # your code as a subrepo
    subrepo/      # the library code as a subrepo

使用此结构,您可以更新your_repo,而无需更新您所依赖的库。

答案 1 :(得分:0)

这是我使用的技巧:

  • 在另一个文件夹中拥有subrepo的本地存储库。我从我的一位同事那里复制了这个文件夹。

  • 设置新的回购。拉动更改(不要更新)。 CLONE将当地subrepo放入新repo中的适当位置。现在更新和tortoiseHg只会获取该子区域中的差异。

  • 此时,您的subrepo指向本地副本。一旦所有内容都更新到最新。将subrepo指向远程服务器中的子服务器。

当然,这只适用于您或某人已有副本的副本。