Add sync-c option to manifest

There are use-cases when fetching all branch is impractical and
we really need to fetch only one branch/tag.
e.g. there is a large project with binaries and every update of a
binary file is put to a separate branch.
The whole project history might be too large to allow users fetch it.

Add 'sync-c' option to 'project' and 'default' tags to make it possible
to configure 'sync-c' behavior at per-project and per-manifest level.

Note that currently there is no possibility to revert boolean flag from
command line. If 'sync-c' is set in manifest then you cannot make
full fetch by providing a repo tool argument.

Change-Id: Ie36fe5737304930493740370239403986590f593
This commit is contained in:
Anatol Pomazau
2012-04-20 14:41:59 -07:00
parent c39864f5e1
commit 79770d269e
3 changed files with 28 additions and 2 deletions

View File

@@ -510,7 +510,8 @@ class Project(object):
revisionExpr,
revisionId,
rebase = True,
groups = None):
groups = None,
sync_c = False):
self.manifest = manifest
self.name = name
self.remote = remote
@@ -531,6 +532,7 @@ class Project(object):
self.rebase = rebase
self.groups = groups
self.sync_c = sync_c
self.snapshots = {}
self.copyfiles = []
@@ -964,6 +966,7 @@ class Project(object):
and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
is_new = False
current_branch_only = current_branch_only or self.sync_c or self.manifest.default.sync_c
if not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir,
current_branch_only=current_branch_only):
return False