diff options
Diffstat (limited to 'project.py')
| -rwxr-xr-x | project.py | 18 |
1 files changed, 13 insertions, 5 deletions
| @@ -1226,7 +1226,8 @@ class Project(object): | |||
| 1226 | archive=False, | 1226 | archive=False, |
| 1227 | optimized_fetch=False, | 1227 | optimized_fetch=False, |
| 1228 | prune=False, | 1228 | prune=False, |
| 1229 | submodules=False): | 1229 | submodules=False, |
| 1230 | clone_filter=None): | ||
| 1230 | """Perform only the network IO portion of the sync process. | 1231 | """Perform only the network IO portion of the sync process. |
| 1231 | Local working directory/branch state is not affected. | 1232 | Local working directory/branch state is not affected. |
| 1232 | """ | 1233 | """ |
| @@ -1309,7 +1310,8 @@ class Project(object): | |||
| 1309 | not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, | 1310 | not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, |
| 1310 | current_branch_only=current_branch_only, | 1311 | current_branch_only=current_branch_only, |
| 1311 | no_tags=no_tags, prune=prune, depth=depth, | 1312 | no_tags=no_tags, prune=prune, depth=depth, |
| 1312 | submodules=submodules, force_sync=force_sync)): | 1313 | submodules=submodules, force_sync=force_sync, |
| 1314 | clone_filter=clone_filter)): | ||
| 1313 | return False | 1315 | return False |
| 1314 | 1316 | ||
| 1315 | mp = self.manifest.manifestProject | 1317 | mp = self.manifest.manifestProject |
| @@ -1959,7 +1961,8 @@ class Project(object): | |||
| 1959 | prune=False, | 1961 | prune=False, |
| 1960 | depth=None, | 1962 | depth=None, |
| 1961 | submodules=False, | 1963 | submodules=False, |
| 1962 | force_sync=False): | 1964 | force_sync=False, |
| 1965 | clone_filter=None): | ||
| 1963 | 1966 | ||
| 1964 | is_sha1 = False | 1967 | is_sha1 = False |
| 1965 | tag_name = None | 1968 | tag_name = None |
| @@ -2050,6 +2053,11 @@ class Project(object): | |||
| 2050 | 2053 | ||
| 2051 | cmd = ['fetch'] | 2054 | cmd = ['fetch'] |
| 2052 | 2055 | ||
| 2056 | if clone_filter: | ||
| 2057 | git_require((2, 19, 0), fail=True, msg='partial clones') | ||
| 2058 | cmd.append('--filter=%s' % clone_filter) | ||
| 2059 | self.config.SetString('extensions.partialclone', self.remote.name) | ||
| 2060 | |||
| 2053 | if depth: | 2061 | if depth: |
| 2054 | cmd.append('--depth=%s' % depth) | 2062 | cmd.append('--depth=%s' % depth) |
| 2055 | else: | 2063 | else: |
| @@ -2150,12 +2158,12 @@ class Project(object): | |||
| 2150 | return self._RemoteFetch(name=name, | 2158 | return self._RemoteFetch(name=name, |
| 2151 | current_branch_only=current_branch_only, | 2159 | current_branch_only=current_branch_only, |
| 2152 | initial=False, quiet=quiet, alt_dir=alt_dir, | 2160 | initial=False, quiet=quiet, alt_dir=alt_dir, |
| 2153 | depth=None) | 2161 | depth=None, clone_filter=clone_filter) |
| 2154 | else: | 2162 | else: |
| 2155 | # Avoid infinite recursion: sync all branches with depth set to None | 2163 | # Avoid infinite recursion: sync all branches with depth set to None |
| 2156 | return self._RemoteFetch(name=name, current_branch_only=False, | 2164 | return self._RemoteFetch(name=name, current_branch_only=False, |
| 2157 | initial=False, quiet=quiet, alt_dir=alt_dir, | 2165 | initial=False, quiet=quiet, alt_dir=alt_dir, |
| 2158 | depth=None) | 2166 | depth=None, clone_filter=clone_filter) |
| 2159 | 2167 | ||
| 2160 | return ok | 2168 | return ok |
| 2161 | 2169 | ||
