init: change --depth default to 1 for manifest repo

People rarely care about the history of the manifest repo.  Change
the default to 1 to speed up initial setup.  If people really want
the full history, they can pass --manifest-depth=0.

We can't reuse the existing --depth option because that applies to
all projects we clone, not just the manifest repo.

Bug: https://crbug.com/gerrit/16193
Change-Id: Ideab1712e9ffc743b9bae97903e074d7d429b134
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343435
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: LaMont Jones <lamontjones@google.com>
diff --git a/man/repo-gitc-init.1 b/man/repo-gitc-init.1
index 88136de..d6ef5ab 100644
--- a/man/repo-gitc-init.1
+++ b/man/repo-gitc-init.1
@@ -45,6 +45,10 @@
 \fB\-\-standalone\-manifest\fR
 download the manifest as a static file rather then
 create a git checkout of the manifest repo
+.TP
+\fB\-\-manifest\-depth\fR=\fI\,DEPTH\/\fR
+create a shallow clone of the manifest repo with given
+depth; see git clone (default: 1)
 .SS Manifest (only) checkout options:
 .TP
 \fB\-\-current\-branch\fR
diff --git a/man/repo-init.1 b/man/repo-init.1
index 32b3ea1..0d45bf7 100644
--- a/man/repo-init.1
+++ b/man/repo-init.1
@@ -45,6 +45,10 @@
 \fB\-\-standalone\-manifest\fR
 download the manifest as a static file rather then
 create a git checkout of the manifest repo
+.TP
+\fB\-\-manifest\-depth\fR=\fI\,DEPTH\/\fR
+create a shallow clone of the manifest repo with given
+depth; see git clone (default: 1)
 .SS Manifest (only) checkout options:
 .TP
 \fB\-c\fR, \fB\-\-current\-branch\fR
diff --git a/repo b/repo
index 1940a31..e97cdd7 100755
--- a/repo
+++ b/repo
@@ -316,6 +316,9 @@
                    help='download the manifest as a static file '
                         'rather then create a git checkout of '
                         'the manifest repo')
+  group.add_option('--manifest-depth', type='int', default=1, metavar='DEPTH',
+                   help='create a shallow clone of the manifest repo with '
+                        'given depth; see git clone (default: %default)')
 
   # Options that only affect manifest project, and not any of the projects
   # specified in the manifest itself.
diff --git a/subcmds/init.py b/subcmds/init.py
index e4df6b3..bcccae0 100644
--- a/subcmds/init.py
+++ b/subcmds/init.py
@@ -109,6 +109,10 @@
     Args:
       opt: options from optparse.
     """
+    # Normally this value is set when instantiating the project, but the
+    # manifest project is special and is created when instantiating the
+    # manifest which happens before we parse options.
+    self.manifest.manifestProject.clone_depth = opt.manifest_depth
     if not self.manifest.manifestProject.Sync(
         manifest_url=opt.manifest_url,
         manifest_branch=opt.manifest_branch,