Relative url values in .gitmodules confusingly sensitive to clone via ssh vs https.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From my perspective, this is a bug.

If I clone a repo twice like this:

git clone https://github.com/user/repo.git ./https
git clone git@xxxxxxxxxx:user/repo.git ./ssh

And if it contains a .gitmodules like this:

[submodule "x"]
    path = xxx
    url = ../../different-user/something.git

When I `git submodule update --init --recursive` in each, only the
HTTPS version works. the SSH version confusingly seems to try to find
something at ~/different-user/something.git or some other path in the
local file system.

this seems consistent with the URL parsing resulting in different
segmentation and thus the ../../ ending up in different places:

https =[..., 'github.com', 'user', 'repo.git']
ssh=['git@xxxxxxxxxx:user', 'repo.git']

# ../../
https[:-2] -> [..., 'github.com']
ssh[:-2] -> []

This theory is supported by the fact that this works:

git clone ssh://git@xxxxxxxxxx/user/repo.git ./ssh
cd ssh
git submodule update --init --recursive

----
See also: https://stackoverflow.com/questions/36564696/how-to-use-same-protocol-for-git-submodules



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux