# HG changeset patch # User Mads Kiilerich # Date 1358215153 -3600 # Node ID 4148414da12048cd97e1c73e926bb465bda7cfa2 # Parent 6252b4f1c4b45818bf54e507c2b5d7bddafe2113 obsolete: process markers in a stable order Using set iteration order gave unstable debugsuccessorssets output with PYTHONHASHSEED=random. diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py --- a/mercurial/obsolete.py +++ b/mercurial/obsolete.py @@ -526,7 +526,7 @@ # Having none means pruned node, multiple successors means split, # single successors are standard replacement. # - for mark in succmarkers[current]: + for mark in sorted(succmarkers[current]): for suc in mark[1]: if suc not in cache: if suc in stackedset: @@ -563,7 +563,7 @@ # duplicated entry and successors set that are strict subset of # another one. succssets = [] - for mark in succmarkers[current]: + for mark in sorted(succmarkers[current]): # successors sets contributed by this marker markss = [[]] for suc in mark[1]: diff --git a/tests/test-obsolete-divergent.t b/tests/test-obsolete-divergent.t --- a/tests/test-obsolete-divergent.t +++ b/tests/test-obsolete-divergent.t @@ -76,8 +76,8 @@ d20a80d4def3 d20a80d4def3 007dc284c1f8 + 82623d38b9ba 392fd25390da - 82623d38b9ba 82623d38b9ba 82623d38b9ba 392fd25390da @@ -123,8 +123,8 @@ d20a80d4def3 d20a80d4def3 007dc284c1f8 + 82623d38b9ba 01f36c5a8fda - 82623d38b9ba 82623d38b9ba 82623d38b9ba 392fd25390da @@ -158,8 +158,8 @@ d20a80d4def3 d20a80d4def3 007dc284c1f8 + 82623d38b9ba 392fd25390da - 82623d38b9ba 82623d38b9ba 82623d38b9ba 392fd25390da