add --no-current-branch option to invert --current-branch
For most commands, this is more about providing a way to undo earlier
command line options (e.g. `repo info -c --no-current-branch`) which
can be helpful for scripting & automation. But for the sync command,
this is helpful to undo the setting that exists in the manifest itself.
With this in place, tweak the sync current_branch_only logic to only
apply the manifest settings when the user hasn't specified a command
line option.
Bug: https://crbug.com/gerrit/12401
Change-Id: I21e2384624680cc740d1b5d1e49c50589d2fe6a0
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/304903
Reviewed-by: Raman Tenneti <rtenneti@google.com>
Tested-by: Mike Frysinger <vapier@google.com>
diff --git a/project.py b/project.py
index f05ce66..ab28f2c 100644
--- a/project.py
+++ b/project.py
@@ -1041,7 +1041,7 @@
verbose=False,
output_redir=None,
is_new=None,
- current_branch_only=False,
+ current_branch_only=None,
force_sync=False,
clone_bundle=True,
tags=True,
@@ -1116,7 +1116,7 @@
and self._ApplyCloneBundle(initial=is_new, quiet=quiet, verbose=verbose)):
is_new = False
- if not current_branch_only:
+ if current_branch_only is None:
if self.sync_c:
current_branch_only = True
elif not self.manifest._loaded:
diff --git a/repo b/repo
index b3f3673..4068b12 100755
--- a/repo
+++ b/repo
@@ -324,6 +324,9 @@
group.add_option(*cbr_opts,
dest='current_branch_only', action='store_true',
help='fetch only current manifest branch from server')
+ group.add_option('--no-current-branch',
+ dest='current_branch_only', action='store_false',
+ help='fetch all manifest branches from server')
group.add_option('--no-tags',
dest='tags', default=True, action='store_false',
help="don't fetch tags in the manifest")
diff --git a/subcmds/info.py b/subcmds/info.py
index 8e017ed..2be5610 100644
--- a/subcmds/info.py
+++ b/subcmds/info.py
@@ -39,6 +39,9 @@
p.add_option('-c', '--current-branch',
dest="current_branch", action="store_true",
help="consider only checked out branches")
+ p.add_option('--no-current-branch',
+ dest='current_branch', action='store_false',
+ help='consider all local branches')
# Turn this into a warning & remove this someday.
p.add_option('-b',
dest='current_branch', action='store_true',
diff --git a/subcmds/overview.py b/subcmds/overview.py
index 4f62f94..202a5eb 100644
--- a/subcmds/overview.py
+++ b/subcmds/overview.py
@@ -37,6 +37,9 @@
p.add_option('-c', '--current-branch',
dest="current_branch", action="store_true",
help="Consider only checked out branches")
+ p.add_option('--no-current-branch',
+ dest='current_branch', action='store_false',
+ help='consider all local branches')
# Turn this into a warning & remove this someday.
p.add_option('-b',
dest='current_branch', action='store_true',
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 9f8de9e..f06c61c 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -213,6 +213,9 @@
p.add_option('-c', '--current-branch',
dest='current_branch_only', action='store_true',
help='fetch only current branch from server')
+ p.add_option('--no-current-branch',
+ dest='current_branch_only', action='store_false',
+ help='fetch all branches from server')
p.add_option('-m', '--manifest-name',
dest='manifest_name',
help='temporary manifest to use for this sync', metavar='NAME.xml')
diff --git a/subcmds/upload.py b/subcmds/upload.py
index 57434b1..c497d87 100644
--- a/subcmds/upload.py
+++ b/subcmds/upload.py
@@ -174,6 +174,9 @@
p.add_option('-c', '--current-branch',
dest='current_branch', action='store_true',
help='Upload current git branch.')
+ p.add_option('--no-current-branch',
+ dest='current_branch', action='store_false',
+ help='Upload all git branches.')
# Turn this into a warning & remove this someday.
p.add_option('--cbr',
dest='current_branch', action='store_true',