JuliaPackaging/BinaryBuilderBase.jl

Allow for git clone --recurse-submodules for GitSource

Downsite opened this issue · 3 comments

Because of caching, if one tries to clone a repository that makes use of relative paths in .gitmodules, git submodule update will fail. That is because the repository url is changed automatically.

$ git submodule init
Submodule 'dep/mydep' (/home/user/.julia/packages/BinaryBuilderBase/hosj0/deps/downloads/public/mydep.git) registered for path 'dep/mydep'
$ git submodule update
fatal: repository '/home/user/.julia/packages/BinaryBuilderBase/hosj0/deps/downloads/public/mydep.git' does not exist
fatal: clone of '/home/user/.julia/packages/BinaryBuilderBase/hosj0/deps/downloads/public/mydep.git' into submodule path '/workspace/srcdir/myproj/dep/mydep' failed'

An option to allow to add flags to git clone would help here.

We don't use git for cloning but libgit2, which as far as I understand doesn't allow managing submodules.

A (diry?) workaround is to use git remote set-url origin in the build script.

We don't use git for cloning but libgit2, which as far as I understand doesn't allow managing submodules.

To be clearer, I think it's the julia's LibGit2.jl standard library which doesn't expose the submodules management, which is present in libgit2