From 04c9924fe4623b4f8d42f1a2a32210d6f812d8df Mon Sep 17 00:00:00 2001 From: Philipp Hasper Date: Sun, 19 May 2019 19:47:40 +0200 Subject: [PATCH] Relative URLs for submodules Closes #730 --- git/objects/submodule/root.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/git/objects/submodule/root.py b/git/objects/submodule/root.py index f2035e5b2..afe6117e9 100644 --- a/git/objects/submodule/root.py +++ b/git/objects/submodule/root.py @@ -7,6 +7,7 @@ ) from git.exc import InvalidGitRepositoryError import git +import os import logging @@ -197,7 +198,13 @@ def update(self, previous_commit=None, recursive=True, force_remove=False, init= if not dry_run: assert nn not in [r.name for r in rmts] - smr = smm.create_remote(nn, sm.url) + + # Handle relative urls + remoteUrl = sm.url + if sm.url.startswith('..'): + remoteUrl = os.path.join(repo.remotes.origin.url, sm.url) + # END handle relative url check + smr = smm.create_remote(nn, remoteUrl) smr.fetch(progress=progress) # If we have a tracking branch, it should be available