aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/wrap/wrap.py
diff options
context:
space:
mode:
authorMartin Hostettler <textshell@uchuujin.de>2019-11-27 17:02:57 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2019-11-28 13:01:33 +0200
commitbb03cf0dbc7158fd0684047272869abd565e4951 (patch)
tree7751a9b505d5e91fbbe26372b5b44fa719329fbb /mesonbuild/wrap/wrap.py
parent9db446123900aa3e585fbbce5ed5698369897c05 (diff)
downloadmeson-bb03cf0dbc7158fd0684047272869abd565e4951.zip
meson-bb03cf0dbc7158fd0684047272869abd565e4951.tar.gz
meson-bb03cf0dbc7158fd0684047272869abd565e4951.tar.bz2
wrap: Resolver.get_git: Factor out --depth argument generation and make sure not to pass None as parameter
507cf47507cf47 broke the combination of clone-recursive without depth. Because it passed depth (as None) to git. To fix this the depth option is now generated once as a list when depth is set and else set to an empty list and unpacked into the argument this when needed. This reduces duplication and allows code to work the same for both cases.
Diffstat (limited to 'mesonbuild/wrap/wrap.py')
-rw-r--r--mesonbuild/wrap/wrap.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py
index c8c42e7..aa764b8 100644
--- a/mesonbuild/wrap/wrap.py
+++ b/mesonbuild/wrap/wrap.py
@@ -239,7 +239,11 @@ class Resolver:
def get_git(self) -> None:
revno = self.wrap.get('revision')
- is_shallow = self.wrap.values.get('depth', '') != ''
+ is_shallow = False
+ depth_option = [] # type: typing.List[str]
+ if self.wrap.values.get('depth', '') != '':
+ is_shallow = True
+ depth_option = ['--depth', self.wrap.values.get('depth')]
# for some reason git only allows commit ids to be shallowly fetched by fetch not with clone
if is_shallow and self.is_git_full_commit_id(revno):
# git doesn't support directly cloning shallowly for commits,
@@ -248,12 +252,12 @@ class Resolver:
subprocess.check_call(['git', 'remote', 'add', 'origin', self.wrap.get('url')],
cwd=self.dirname)
revno = self.wrap.get('revision')
- subprocess.check_call(['git', 'fetch', '--depth', self.wrap.values.get('depth'), 'origin', revno],
+ subprocess.check_call(['git', 'fetch', *depth_option, 'origin', revno],
cwd=self.dirname)
subprocess.check_call(['git', 'checkout', revno], cwd=self.dirname)
if self.wrap.values.get('clone-recursive', '').lower() == 'true':
subprocess.check_call(['git', 'submodule', 'update',
- '--init', '--checkout', '--recursive', '--depth', self.wrap.values.get('depth')],
+ '--init', '--checkout', '--recursive', *depth_option],
cwd=self.dirname)
push_url = self.wrap.values.get('push-url')
if push_url:
@@ -269,13 +273,13 @@ class Resolver:
subprocess.check_call(['git', 'fetch', self.wrap.get('url'), revno], cwd=self.dirname)
subprocess.check_call(['git', 'checkout', revno], cwd=self.dirname)
else:
- subprocess.check_call(['git', 'clone', '--depth', self.wrap.values.get('depth'),
+ subprocess.check_call(['git', 'clone', *depth_option,
'--branch', revno,
self.wrap.get('url'),
self.directory], cwd=self.subdir_root)
if self.wrap.values.get('clone-recursive', '').lower() == 'true':
subprocess.check_call(['git', 'submodule', 'update',
- '--init', '--checkout', '--recursive', '--depth', self.wrap.values.get('depth')],
+ '--init', '--checkout', '--recursive', *depth_option],
cwd=self.dirname)
push_url = self.wrap.values.get('push-url')
if push_url: