summaryrefslogtreecommitdiffstats
path: root/git_superproject.py
diff options
context:
space:
mode:
authorRaman Tenneti <rtenneti@google.com>2021-03-04 10:29:40 -0800
committerRaman Tenneti <rtenneti@google.com>2021-03-04 20:07:52 +0000
commitef99ec07b4687cef0129057b81c0c1ebd21bb640 (patch)
tree86a2e87156f795e631097cc922c9757dbaf1cf7f /git_superproject.py
parent934cb0a849d0bf22e2ae64cd6c3e93334d05e3ab (diff)
downloadgit-repo-ef99ec07b4687cef0129057b81c0c1ebd21bb640.tar.gz
superproject: Display status messages during repo init/sync.v2.13.3
Superproject objects accept the optional argument “quiet”. The following progress messages are displayed if quiet is false. Displayed the following message whenever we find we have to make a new folder (aka new remote), because if you started with repo init android and later do googleplex-android that is when it will be slow. "<location>: Performing initial setup for superproject; this might take several minutes.". After fetch completion, added the following notification: "<location>: Initial setup for superproject completed." Tested the code with the following commands. $ ./run_tests -v Tested the sync code by using repo_dev alias and pointing to this CL. $ repo_dev init -u persistent-https://googleplex-android.git.corp.google.com/platform/manifest -b rvc-dev --partial-clone --clone-filter=blob:limit=10M --repo-rev=main --use-superproject Bug: [google internal] b/181178282 Bug: https://crbug.com/gerrit/13707 Change-Id: Ia7fb85c6fb934faaa90c48fc0c55e7f41055f48a Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/299122 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Raman Tenneti <rtenneti@google.com>
Diffstat (limited to 'git_superproject.py')
-rw-r--r--git_superproject.py10
1 files changed, 9 insertions, 1 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):