在具有子存储库的存储库上使用 PULL 的水银克隆不会创建完全独立的存储库



我有一个shell存储库OriginalWithSubrepo,其中包含一堆实际文件。

当我像这样克隆OriginalWithSubrepo

hg clone --pull --noupdate "C:TestRepoOriginalWithSubrepo" "C:TestRepoOriginalWithSubrepo-clone"

这样创建的克隆只包含几个mercurial内务管理文件,没有来自原始Sub的实际数据。hg目录。我不知道这些文件是什么意思,但显然它们足以重新创建repo,因为当我在clone中更新工作目录时,整个东西都填满了所有文件,包括在Sub中。hg目录。但是,如果我克隆,然后重命名原始版本,然后尝试更新克隆版本,它不会工作,说没有找到OriginalWithSubrepo,这意味着它都是基于到原始版本的链接。

当我运行带有update的clone时,或者当我克隆一个没有subrepos的存储库时,这个问题不会出现。

当我克隆到一个网络共享时,它的行为是一样的,这是我真正希望它工作的地方。

那么我如何做一个完全独立的克隆一个repo与子repo (w/o同步更新)?

Windows XP, hg version 3.4.1

当您将第一个子repo添加到父repo时,.hgsub被添加到父repo。子repo只会成为提交.hgsub的变更集的子repo。

当你执行hg clone --noupdate --pull parent parent-clone时,parent-clone还没有在任何更改集中,因此还没有在创建子repo的更改集中

那么我如何做一个完全独立的克隆一个repo与子repo (w/o同步更新)?

我认为你不能这样做。

但是这可能会达到你想要做的(我在这里读字里行间,但我猜在共享上有repo,但没有任何可见的文件):

  1. 在您的网络共享上为您的父节点\fileserverreposOriginalWithSub和子节点\fileserverreposSub创建repos
  2. 修改本地的OriginalWithSub .hgsub,将远程路径设置为\fileserverreposSub并提交。
  3. 将本地存储库推送到相应的网络共享中。

两个存储库现在都存在于网络共享中,除了.hg内部没有任何可见的文件,您可以从另一台计算机克隆\fileserverreposOriginalWithSub(带更新)并获得OriginalWithSub和Sub的完整历史记录。

相关内容

  • 没有找到相关文章

最新更新