diff options
Diffstat (limited to 'subcmds/init.py')
-rw-r--r-- | subcmds/init.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/subcmds/init.py b/subcmds/init.py index 1c809ab4..eaa6da50 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
@@ -115,6 +115,13 @@ to update the working directory files. | |||
115 | g.add_option('--depth', type='int', default=None, | 115 | g.add_option('--depth', type='int', default=None, |
116 | dest='depth', | 116 | dest='depth', |
117 | help='create a shallow clone with given depth; see git clone') | 117 | help='create a shallow clone with given depth; see git clone') |
118 | g.add_option('--partial-clone', action='store_true', | ||
119 | dest='partial_clone', | ||
120 | help='perform partial clone (https://git-scm.com/' | ||
121 | 'docs/gitrepository-layout#_code_partialclone_code)') | ||
122 | g.add_option('--clone-filter', action='store', default='blob:none', | ||
123 | dest='clone_filter', | ||
124 | help='filter for use with --partial-clone [default: %default]') | ||
118 | g.add_option('--archive', | 125 | g.add_option('--archive', |
119 | dest='archive', action='store_true', | 126 | dest='archive', action='store_true', |
120 | help='checkout an archive instead of a git repository for ' | 127 | help='checkout an archive instead of a git repository for ' |
@@ -253,13 +260,25 @@ to update the working directory files. | |||
253 | 'in another location.', file=sys.stderr) | 260 | 'in another location.', file=sys.stderr) |
254 | sys.exit(1) | 261 | sys.exit(1) |
255 | 262 | ||
263 | if opt.partial_clone: | ||
264 | if opt.mirror: | ||
265 | print('fatal: --mirror and --partial-clone are mutually exclusive', | ||
266 | file=sys.stderr) | ||
267 | sys.exit(1) | ||
268 | m.config.SetString('repo.partialclone', 'true') | ||
269 | if opt.clone_filter: | ||
270 | m.config.SetString('repo.clonefilter', opt.clone_filter) | ||
271 | else: | ||
272 | opt.clone_filter = None | ||
273 | |||
256 | if opt.submodules: | 274 | if opt.submodules: |
257 | m.config.SetString('repo.submodules', 'true') | 275 | m.config.SetString('repo.submodules', 'true') |
258 | 276 | ||
259 | if not m.Sync_NetworkHalf(is_new=is_new, quiet=opt.quiet, | 277 | if not m.Sync_NetworkHalf(is_new=is_new, quiet=opt.quiet, |
260 | clone_bundle=not opt.no_clone_bundle, | 278 | clone_bundle=not opt.no_clone_bundle, |
261 | current_branch_only=opt.current_branch_only, | 279 | current_branch_only=opt.current_branch_only, |
262 | no_tags=opt.no_tags, submodules=opt.submodules): | 280 | no_tags=opt.no_tags, submodules=opt.submodules, |
281 | clone_filter=opt.clone_filter): | ||
263 | r = m.GetRemote(m.remote.name) | 282 | r = m.GetRemote(m.remote.name) |
264 | print('fatal: cannot obtain manifest %s' % r.url, file=sys.stderr) | 283 | print('fatal: cannot obtain manifest %s' % r.url, file=sys.stderr) |
265 | 284 | ||