JuliaPackaging / BinaryBuilderBase.jl

https://juliapackaging.github.io/BinaryBuilderBase.jl/stable
MIT License
11 stars 31 forks source link

Allow for git clone --recurse-submodules for GitSource #355

Open Downsite opened 8 months ago

Downsite commented 8 months ago

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.

giordano commented 8 months ago

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

Downsite commented 8 months ago

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

giordano commented 8 months ago

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