Mercurial 如何跳过龟甲hg中的subrepo

Mercurial 如何跳过龟甲hg中的subrepo,mercurial,tortoisehg,Mercurial,Tortoisehg,我使用的是tortoise hg,我的存储库包含subrepo。subrepo非常大,需要很长时间才能更新 是否有一种方法可以更新我的存储库,但可以跳过子存储库的更新?使用update命令可以始终对整个存储库进行操作。没有排除子回购的选项 但是,如果您正确地构建了存储库,您应该能够实现所需的功能 我预计您会遇到这个问题,因为您的项目回购协议如下所示: parent/ .hgsub .hgsubstate subrepo/ your_project_file.py

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


是否有一种方法可以更新我的存储库,但可以跳过子存储库的更新?

使用
update
命令可以始终对整个存储库进行操作。没有排除子回购的选项

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

我预计您会遇到这个问题,因为您的项目回购协议如下所示:

parent/
    .hgsub
    .hgsubstate
    subrepo/
    your_project_file.py
在上述结构中,
update
被强制对您控制的文件(在
parent
中)和子repo进行操作。构建存储库的更好(更灵活)方法是:

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

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

更新
命令旨在始终对整个存储库进行操作。没有排除子回购的选项

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

我预计您会遇到这个问题,因为您的项目回购协议如下所示:

parent/
    .hgsub
    .hgsubstate
    subrepo/
    your_project_file.py
在上述结构中,
update
被强制对您控制的文件(在
parent
中)和子repo进行操作。构建存储库的更好(更灵活)方法是:

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

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

以下是我使用的技巧:

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

  • 建立新的回购协议。拉取更改(暂时不更新)。将本地子回购克隆到新回购中的适当位置。现在update和tortoiseHg将只获取该子repo中的diff

  • 此时,子回购指向本地副本。一旦一切都更新到最新状态。将子repo指向远程服务器中的子repo


当然,这只有在您或某人已经拥有subrepo副本的情况下才有效。

以下是我使用的技巧:

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

  • 建立新的回购协议。拉取更改(暂时不更新)。将本地子回购克隆到新回购中的适当位置。现在update和tortoiseHg将只获取该子repo中的diff

  • 此时,子回购指向本地副本。一旦一切都更新到最新状态。将子repo指向远程服务器中的子repo

当然,这只有在您或某人已经拥有subrepo副本的情况下才有效