Make load order of local manifests deterministic
Local manifest files stored in the local_manifests folder are loaded
in alphabetical order, so it's easier to know in which order project
removals/additions/modifications will be applied.
If local_manifests.xml exists, it will be loaded before the files in
local_manifests.
Change-Id: Ia5c0349608f1823b4662cd6b340b99915bd973d5
diff --git a/docs/manifest-format.txt b/docs/manifest-format.txt
index 9589352..20ab9eb 100644
--- a/docs/manifest-format.txt
+++ b/docs/manifest-format.txt
@@ -249,7 +249,13 @@
invocation, instructing repo to automatically download and manage
these extra projects.
+Manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml` will
+be loaded in alphabetical order.
+
Additional remotes and projects may also be added through a local
manifest, stored in `$TOP_DIR/.repo/local_manifest.xml`. This method
is deprecated in favor of using multiple manifest files as mentioned
above.
+
+If `$TOP_DIR/.repo/local_manifest.xml` exists, it will be loaded before
+any manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml`.
diff --git a/manifest_xml.py b/manifest_xml.py
index a3e78fe..3198724 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -312,7 +312,7 @@
local_dir = os.path.abspath(os.path.join(self.repodir, LOCAL_MANIFESTS_DIR_NAME))
try:
- for local_file in os.listdir(local_dir):
+ for local_file in sorted(os.listdir(local_dir)):
if local_file.endswith('.xml'):
try:
nodes.append(self._ParseManifestXml(local_file, self.repodir))