summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2012-11-05 15:47:26 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2012-11-05 17:05:48 +0000
commita2b8f6722c7e784ba009d34bf1af62d047e2f928 (patch)
treecfd89cf8b7a44e8378a923ea910c64171788a439
parent163f9dc6e5424122ee218c4ef6009274831210ca (diff)
downloaddefinitions-a2b8f6722c7e784ba009d34bf1af62d047e2f928.tar.gz
Process systems for merging in a fixed order
The test tests.merging/rename-stratum could potentially trigger two different errors in Morph, based on the order that the systems in the root repo were processed. This meant that the test would sometimes spuriously fail if TMPDIR was manually set, because of differences in the way file systems work. To fix the root cause requires proper 3-way merging, really.
-rw-r--r--morphlib/plugins/branch_and_merge_plugin.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/morphlib/plugins/branch_and_merge_plugin.py b/morphlib/plugins/branch_and_merge_plugin.py
index f0cbea81..332cdfe9 100644
--- a/morphlib/plugins/branch_and_merge_plugin.py
+++ b/morphlib/plugins/branch_and_merge_plugin.py
@@ -739,7 +739,7 @@ class BranchAndMergePlugin(cliapp.Plugin):
# We must first get the full set of strata. One same stratum may be
# in multiple systems and each system may use a different ref.
strata = {}
- for f in glob.glob(os.path.join(root_repo_dir, '*.morph')):
+ for f in sorted(glob.iglob(os.path.join(root_repo_dir, '*.morph'))):
name = os.path.basename(f)[:-len('.morph')]
morphology = self.load_morphology(root_repo_dir, name)
if morphology['kind'] != 'system':