diff options
-rw-r--r-- | git_superproject.py | 10 | ||||
-rw-r--r-- | subcmds/init.py | 13 | ||||
-rw-r--r-- | subcmds/sync.py | 3 |
3 files changed, 20 insertions, 6 deletions
diff --git a/git_superproject.py b/git_superproject.py index a09edc15..651da48a 100644 --- a/git_superproject.py +++ b/git_superproject.py | |||
@@ -41,7 +41,8 @@ class Superproject(object): | |||
41 | lookup of commit ids for all projects. It contains _project_commit_ids which | 41 | lookup of commit ids for all projects. It contains _project_commit_ids which |
42 | is a dictionary with project/commit id entries. | 42 | is a dictionary with project/commit id entries. |
43 | """ | 43 | """ |
44 | def __init__(self, manifest, repodir, superproject_dir='exp-superproject'): | 44 | def __init__(self, manifest, repodir, superproject_dir='exp-superproject', |
45 | quiet=False): | ||
45 | """Initializes superproject. | 46 | """Initializes superproject. |
46 | 47 | ||
47 | Args: | 48 | Args: |
@@ -49,9 +50,11 @@ class Superproject(object): | |||
49 | repodir: Path to the .repo/ dir for holding all internal checkout state. | 50 | repodir: Path to the .repo/ dir for holding all internal checkout state. |
50 | It must be in the top directory of the repo client checkout. | 51 | It must be in the top directory of the repo client checkout. |
51 | superproject_dir: Relative path under |repodir| to checkout superproject. | 52 | superproject_dir: Relative path under |repodir| to checkout superproject. |
53 | quiet: If True then only print the progress messages. | ||
52 | """ | 54 | """ |
53 | self._project_commit_ids = None | 55 | self._project_commit_ids = None |
54 | self._manifest = manifest | 56 | self._manifest = manifest |
57 | self._quiet = quiet | ||
55 | self._branch = self._GetBranch() | 58 | self._branch = self._GetBranch() |
56 | self._repodir = os.path.abspath(repodir) | 59 | self._repodir = os.path.abspath(repodir) |
57 | self._superproject_dir = superproject_dir | 60 | self._superproject_dir = superproject_dir |
@@ -89,6 +92,9 @@ class Superproject(object): | |||
89 | """ | 92 | """ |
90 | if not os.path.exists(self._superproject_path): | 93 | if not os.path.exists(self._superproject_path): |
91 | os.mkdir(self._superproject_path) | 94 | os.mkdir(self._superproject_path) |
95 | if not self._quiet and not os.path.exists(self._work_git): | ||
96 | print('%s: Performing initial setup for superproject; this might take ' | ||
97 | 'several minutes.' % self._work_git) | ||
92 | cmd = ['init', '--bare', self._work_git_name] | 98 | cmd = ['init', '--bare', self._work_git_name] |
93 | p = GitCommand(None, | 99 | p = GitCommand(None, |
94 | cmd, | 100 | cmd, |
@@ -183,6 +189,8 @@ class Superproject(object): | |||
183 | return False | 189 | return False |
184 | if not self._Fetch(url): | 190 | if not self._Fetch(url): |
185 | return False | 191 | return False |
192 | if not self._quiet: | ||
193 | print('%s: Initial setup for superproject completed.' % self._work_git) | ||
186 | return True | 194 | return True |
187 | 195 | ||
188 | def _GetAllProjectsCommitIds(self): | 196 | def _GetAllProjectsCommitIds(self): |
diff --git a/subcmds/init.py b/subcmds/init.py index fc446045..c2376b65 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
@@ -185,10 +185,15 @@ to update the working directory files. | |||
185 | return {'REPO_MANIFEST_URL': 'manifest_url', | 185 | return {'REPO_MANIFEST_URL': 'manifest_url', |
186 | 'REPO_MIRROR_LOCATION': 'reference'} | 186 | 'REPO_MIRROR_LOCATION': 'reference'} |
187 | 187 | ||
188 | def _CloneSuperproject(self): | 188 | def _CloneSuperproject(self, opt): |
189 | """Clone the superproject based on the superproject's url and branch.""" | 189 | """Clone the superproject based on the superproject's url and branch. |
190 | |||
191 | Args: | ||
192 | opt: Program options returned from optparse. See _Options(). | ||
193 | """ | ||
190 | superproject = git_superproject.Superproject(self.manifest, | 194 | superproject = git_superproject.Superproject(self.manifest, |
191 | self.repodir) | 195 | self.repodir, |
196 | quiet=opt.quiet) | ||
192 | if not superproject.Sync(): | 197 | if not superproject.Sync(): |
193 | print('error: git update of superproject failed', file=sys.stderr) | 198 | print('error: git update of superproject failed', file=sys.stderr) |
194 | sys.exit(1) | 199 | sys.exit(1) |
@@ -553,7 +558,7 @@ to update the working directory files. | |||
553 | self._LinkManifest(opt.manifest_name) | 558 | self._LinkManifest(opt.manifest_name) |
554 | 559 | ||
555 | if self.manifest.manifestProject.config.GetBoolean('repo.superproject'): | 560 | if self.manifest.manifestProject.config.GetBoolean('repo.superproject'): |
556 | self._CloneSuperproject() | 561 | self._CloneSuperproject(opt) |
557 | 562 | ||
558 | if os.isatty(0) and os.isatty(1) and not self.manifest.IsMirror: | 563 | if os.isatty(0) and os.isatty(1) and not self.manifest.IsMirror: |
559 | if opt.config_name or self._ShouldConfigureUser(opt): | 564 | if opt.config_name or self._ShouldConfigureUser(opt): |
diff --git a/subcmds/sync.py b/subcmds/sync.py index 0db96b54..3ad0627d 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
@@ -292,7 +292,8 @@ later is required to fix a server side protocol bug. | |||
292 | Returns path to the overriding manifest file. | 292 | Returns path to the overriding manifest file. |
293 | """ | 293 | """ |
294 | superproject = git_superproject.Superproject(self.manifest, | 294 | superproject = git_superproject.Superproject(self.manifest, |
295 | self.repodir) | 295 | self.repodir, |
296 | quiet=opt.quiet) | ||
296 | all_projects = self.GetProjects(args, | 297 | all_projects = self.GetProjects(args, |
297 | missing_ok=True, | 298 | missing_ok=True, |
298 | submodules_ok=opt.fetch_submodules) | 299 | submodules_ok=opt.fetch_submodules) |