diff options
author | Martin Hostettler <textshell@uchuujin.de> | 2019-11-27 17:02:57 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-11-28 13:01:33 +0200 |
commit | bb03cf0dbc7158fd0684047272869abd565e4951 (patch) | |
tree | 7751a9b505d5e91fbbe26372b5b44fa719329fbb /mesonbuild/wrap/wrap.py | |
parent | 9db446123900aa3e585fbbce5ed5698369897c05 (diff) | |
download | meson-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.py | 14 |
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: |