init: Add no-tags and current branch options
This avoids fetching tags and branches for huge manifests
Change-Id: I19c9724d75364440b881b297d42b906f541f73ff
diff --git a/repo b/repo
index 4293c79..dcd48e0 100755
--- a/repo
+++ b/repo
@@ -23,7 +23,7 @@
# limitations under the License.
# increment this whenever we make important changes to this script
-VERSION = (1, 23)
+VERSION = (1, 24)
# increment this if the MAINTAINER_KEYS block is modified
KEYRING_VERSION = (1, 2)
@@ -175,6 +175,9 @@
group.add_option('-m', '--manifest-name',
dest='manifest_name',
help='initial manifest file', metavar='NAME.xml')
+group.add_option('-c', '--current-branch',
+ dest='current_branch_only', action='store_true',
+ help='fetch only current manifest branch from server')
group.add_option('--mirror',
dest='mirror', action='store_true',
help='create a replica of the remote repositories '
@@ -202,6 +205,9 @@
group.add_option('--no-clone-bundle',
dest='no_clone_bundle', action='store_true',
help='disable use of /clone.bundle on HTTP/HTTPS')
+group.add_option('--no-tags',
+ dest='no_tags', action='store_true',
+ help="don't fetch tags in the manifest")
# Tool
diff --git a/subcmds/init.py b/subcmds/init.py
index 45d69b7..bb7187d 100644
--- a/subcmds/init.py
+++ b/subcmds/init.py
@@ -91,6 +91,9 @@
g.add_option('-b', '--manifest-branch',
dest='manifest_branch',
help='manifest branch or revision', metavar='REVISION')
+ g.add_option('-c', '--current-branch',
+ dest='current_branch_only', action='store_true',
+ help='fetch only current manifest branch from server')
g.add_option('-m', '--manifest-name',
dest='manifest_name', default='default.xml',
help='initial manifest file', metavar='NAME.xml')
@@ -121,6 +124,9 @@
g.add_option('--no-clone-bundle',
dest='no_clone_bundle', action='store_true',
help='disable use of /clone.bundle on HTTP/HTTPS')
+ g.add_option('--no-tags',
+ dest='no_tags', action='store_true',
+ help="don't fetch tags in the manifest")
# Tool
g = p.add_option_group('repo Version options')
@@ -231,7 +237,9 @@
sys.exit(1)
if not m.Sync_NetworkHalf(is_new=is_new, quiet=opt.quiet,
- clone_bundle=not opt.no_clone_bundle):
+ clone_bundle=not opt.no_clone_bundle,
+ current_branch_only=opt.current_branch_only,
+ no_tags=opt.no_tags):
r = m.GetRemote(m.remote.name)
print('fatal: cannot obtain manifest %s' % r.url, file=sys.stderr)