Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make submodule URI relative #98

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

hashashini
Copy link

As protocol URI transformation is not predictable across different platforms like github, a relative URI should be preferred. Thus e.g. package managers can easily check out submodules via the same protocol that is used for checking out the main repo.
(solves https://bugs.gentoo.org/show_bug.cgi?id=568156)

@Earnestly
Copy link
Contributor

This smells like a package manager/package build system problem; with something like PKGBUILDs this is easily handled with:

# It is merely coincidence that the submodule is from the same
# github user, but this could be from anywhere.
source=('git+https://github.com/Cloudef/wlc'
        'git+https://github.com/Cloudef/chck')

# And in the prepare/post-build function:
prepare() {
    cd wlc
    git submodule init
    git config submodule.lib/chck.url "$srcdir"/chck
    git submodule update lib/chck
}

I'm not sure how it works in Gentoo but usually packages have a policy of "do not download during the build" and "do not build during the install".

@Cloudef
Copy link
Owner

Cloudef commented Dec 22, 2015

This breaks git submodules completely when ../chck.git is not available. Effectively breaking in-source builds which are useful for development.

@mgorny
Copy link

mgorny commented Dec 24, 2015

@Cloudef, I don't understand the problem you are referring to. This affects only the clone URI, and is relatively to the remote URI. So if you git clone [email protected]:... the original repository, the submodule will also be fetched from github via SSH.

@Cloudef
Copy link
Owner

Cloudef commented Jan 4, 2016

All right, I did not know relative urls are relative to the actual remote. This makes sense then. I'll test this later.

@Cloudef
Copy link
Owner

Cloudef commented Jan 4, 2016

This actually breaks your fork, since it tries to clone chck from your github git path, but does not exist there. I think it's better to use git config to specify the submodule url manually for the specific cases.

@mgorny
Copy link

mgorny commented Jan 4, 2016

I'd dare say fork is a specific case, while just cloning the upstream repo is a generic case which should be accounted for. IOW, person doing git clone https://github.com/Cloudef/wlc would expect submodules to work out of the box, independently of firewalls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants