# HG changeset patch # User Alexis S. L. Carvalho # Date 1173578455 10800 # Node ID 8e947b0e53cc23b14bb4317fc368c53db0aa5947 # Parent dd0d9bd91e0a3bd2d3f163926390b178a4a3b646 localrepo.walk: if we're walking a specific revision, sort the files This is more consistent with our behaviour while walking the working directory. diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -832,7 +832,10 @@ class localrepository(repo.repository): if node: fdict = dict.fromkeys(files) - for fn in self.manifest.read(self.changelog.read(node)[0]): + mdict = self.manifest.read(self.changelog.read(node)[0]) + mfiles = mdict.keys() + mfiles.sort() + for fn in mfiles: for ffn in fdict: # match if the file is the exact name or a directory if ffn == fn or fn.startswith("%s/" % ffn): @@ -840,7 +843,9 @@ class localrepository(repo.repository): break if match(fn): yield 'm', fn - for fn in fdict: + ffiles = fdict.keys() + ffiles.sort() + for fn in ffiles: if badmatch and badmatch(fn): if match(fn): yield 'b', fn diff --git a/tests/test-locate.out b/tests/test-locate.out --- a/tests/test-locate.out +++ b/tests/test-locate.out @@ -16,9 +16,9 @@ t/x a NONEXISTENT: No such file in rev ce18e5bc5cd3 a -t/x b t.h +t/x % -I/-X with relative path should work b t.h