2013-10-08 19 views
0

我在设置存储库的旋绕过程之后初始化子模块的问题克隆裸回购初始化子模块:失败从一个rsync'd回购

  1. 克隆远程裸回购与子模块。
  2. 初始化并更新此回购中的子模块。这里一切都很酷。
  3. 通过克隆非裸露本地回购来创建本地裸回购。 (我说的令人费解的,是吧?)
  4. rsync的这个回购协议机X(不具有访问原始远程)
  5. 做一个非裸克隆机器X.
  6. 尝试的rsync'd回购初始化并更新新回购的子模块。

第六步的结果:

fatal: repository '/some/dir/foo.git' does not exist 

上层项目目录克隆到/一些/ DIR /项目/。

该过程非常复杂,因为:由于网络限制,第1步非常慢并且机器X无法访问原始存储库。因此,在这些约束条件下(如果有必要,我可以重新执行步骤1,也许可以直接创建本地裸仓库),是否有可能实现我在此尝试做的事情?

谢谢。

+0

'.gitmodules'比实际的规则更像你所说的“准则”。我的第一个尝试是在每个子模块的第6步回购中rsync子模块回购到第4步机器“git config submodule.modulename.url url:// step-4/path/to/subrepo”并重试子模块更新。 – jthill

+0

这是诀窍。我修改了您的建议,以便从主rsync'ed存储库创建子模块repo的裸副本。 (因为它递归地包含了所有的子模块)然后将submodule.foo.url设置到这个位置允许我更新存储库。如果您想将您的评论推荐给答案,我会接受它。 –

回答

1

.gitmodules更像是你称之为“准则”而非实际的规则。

我的第一次尝试是

  • 也rsync的子模块回购到步骤-4机,和
  • 在步骤-6回购,对于每个子模块,
    • git config submodule.modulename.url url://step-4/path/to/subrepo
  • 重试子模块更新