将子树合并与 git 中的稀疏结帐结合起来

enn*_*i77 9 python git

我正在尝试在 git 中模拟 svn:externals 。在项目“A”中,我需要将库“B”下拉到“A”的子文件夹中。A 和 B 都是单独的 git 存储库。我知道我可以通过子模块或子树合并来做到这一点。然而,让事情变得更加复杂的是,我需要将“B”的子文件夹拉到“A”中,而不是整个项目,因为它是一个我需要直接导入的Python模块,并且那里不能有根目录结构不然无法导入。

使用 svn:externals 可以很容易地做到这一点。对于 git 来说,这似乎很复杂,甚至是不可能的。

这是一个例子:

项目B:

-B
  - src
    __init__.py
 - test
   ...
Run Code Online (Sandbox Code Playgroud)

项目A:

- A
   - src
     A.py (imports B)
     - B (partial check of sub folder 'src' as name 'B')
        __init__.py
   - test
     ...
Run Code Online (Sandbox Code Playgroud)

ale*_*xis 1

与其通过调整 git 来解决这个问题,为什么不直接在任何地方安装 B,并告诉 A 在哪里可以找到要包含的子模块呢?如果只是添加到sys.path包含相关B子模块的文件夹中,就可以回家了。