From 30d452905f166b316152f236422f85c8aa75a2d0 Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Wed, 4 May 2011 15:01:04 -0700 Subject: Add a --depth option to repo init. Change-Id: Id30fb4a85f4f8a1847420b0b51a86060041eb5bf --- subcmds/init.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'subcmds/init.py') diff --git a/subcmds/init.py b/subcmds/init.py index 37910843..c35cc82c 100644 --- a/subcmds/init.py +++ b/subcmds/init.py @@ -82,6 +82,9 @@ to update the working directory files. g.add_option('--reference', dest='reference', help='location of mirror directory', metavar='DIR') + g.add_option('--depth', type='int', default=None, + dest='depth', + help='create a shallow clone with given depth; see git clone') # Tool g = p.add_option_group('repo Version options') @@ -232,6 +235,25 @@ to update the working directory files. if a in ('y', 'yes', 't', 'true', 'on'): gc.SetString('color.ui', 'auto') + def _ConfigureDepth(self, opt): + """Configure the depth we'll sync down. + + Args: + opt: Options from optparse. We care about opt.depth. + """ + # Opt.depth will be non-None if user actually passed --depth to repo init. + if opt.depth is not None: + if opt.depth > 0: + # Positive values will set the depth. + depth = str(opt.depth) + else: + # Negative numbers will clear the depth; passing None to SetString + # will do that. + depth = None + + # We store the depth in the main manifest project. + self.manifest.manifestProject.config.SetString('repo.depth', depth) + def Execute(self, opt, args): git_require(MIN_GIT_VERSION, fail=True) self._SyncManifest(opt) @@ -241,6 +263,8 @@ to update the working directory files. self._ConfigureUser() self._ConfigureColor() + self._ConfigureDepth(opt) + if self.manifest.IsMirror: type = 'mirror ' else: -- cgit v1.2.3-54-g00ecf