我有多个独立的git存储库,其中没有子模块。任务是组装这些存储库的分层树,并将其用于用户之间的共享。使用“subtree”或“subrepo”方案很容易实现,但似乎无法使用“submodules”来实现。尝试使用子模块的原因是nfs系统上git的性能较慢。在我的情况下,检出需要超过2小时。
我正在尝试创建一个包含子模块的共享存储库。到目前为止,第一次克隆的尝试失败了。以下是测试用例:
作为结果,它创建了一个带有单个顶层子模块(m1)的msub1。
在其他情况下,在克隆第一个子模块后,我会收到类似于这样的致命错误。
我正在尝试创建一个包含子模块的共享存储库。到目前为止,第一次克隆的尝试失败了。以下是测试用例:
mkdir m1 ; cd m1 ; git init ; date > a.txt ; git add --all ; git commit -m added ; cd -
mkdir m2 ; cd m2 ; git init ; date > b.txt ; git add --all ; git commit -m added ; cd -
mkdir m3 ; cd m3 ; git init ; date > c.txt ; git add --all ; git commit -m added ; cd -
mkdir msub; cd msub; git init; date > d.txt; git add --all; git commit -m added;
git submodule add `realpath ../m1` m1
cd m1
git submodule add `realpath ../../m2` m2
git submodule add `realpath ../../m3` m3
git commit -m 'added submodules'
cd ..
git commit -m 'added a submodule'
cd ..
git clone --recursive msub msub1
作为结果,它创建了一个带有单个顶层子模块(m1)的msub1。
在其他情况下,在克隆第一个子模块后,我会收到类似于这样的致命错误。
fatal: git upload-pack: not our ref 89434ad65c1e697bfa311cd0260dfe1997985e65
fatal: remote error: upload-pack: not our ref 89434ad65c1e697bfa311cd0260dfe1997985e65
Fetched in submodule path 'soc', but it did not contain 89434ad65c1e697bfa311cd0260dfe1997985e65. Direct fetching of that commit failed.
我尝试直接向“m1”添加子模块,似乎改善了情况,但我不能在真正的存储库中这么做。
因此,所需方案似乎不起作用。有没有修复的方法呢?
git clone
命令的脚本来提供相同的功能,也许还可以单独选择。 - paxdiablo