superproject: pass groups to ToXml method.
Added the following methods to XmlManifest class.
+ GetDefaultGroupsStr() - return 'default,platform-' + platform.system().lower()
+ GetGroupsStr() - Same as gitc_utils.py's _manifest_groups func.
+ Replaced gitc_utils.py's_manifest_groups calls with GetGroupsStr.
+ Used the above methods to get groups in command.py::GetProjects
and part of init.py.
TODO: clean up these funcs to take structured group data more instead
of passing strings around everywhere that need parsing.
Tested the code with the following commands.
$ ./run_tests -v
Tested the sync code by using repo_dev alias and pointing to this CL
and verified prebuilts/fullsdk-linux directory has all the folders.
Tested repo init and repo sync with --use-superproject and without
--use-superproject argument.
$ repo_dev init -u sso://android.git.corp.google.com/platform/manifest -b androidx-main --partial-clone --clone-filter=blob:limit=10M --repo-rev=main --use-superproject
$ repo_dev sync -c -j32
Bug: [google internal] b/181804931
Bug: https://crbug.com/gerrit/13707
Change-Id: Ia98585cbfa3a1449710655af55d56241794242b6
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/299422
Reviewed-by: Jonathan Nieder <jrn@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Raman Tenneti <rtenneti@google.com>
diff --git a/manifest_xml.py b/manifest_xml.py
index e96e062..6d8fca1 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -14,6 +14,7 @@
import itertools
import os
+import platform
import re
import sys
import xml.dom.minidom
@@ -604,6 +605,17 @@
def HasSubmodules(self):
return self.manifestProject.config.GetBoolean('repo.submodules')
+ def GetDefaultGroupsStr(self):
+ """Returns the default group string for the platform."""
+ return 'default,platform-' + platform.system().lower()
+
+ def GetGroupsStr(self):
+ """Returns the manifest group string that should be synced."""
+ groups = self.manifestProject.config.GetString('manifest.groups')
+ if not groups:
+ groups = self.GetDefaultGroupsStr()
+ return groups
+
def _Unload(self):
self._loaded = False
self._projects = {}