|
|
@@ -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:
|