Mercurial > hg
comparison mercurial/ignore.py @ 18089:0127366df8fe
ignore: process hgignore files in deterministic order
Previously, we processed them in whatever order the dict iterator gave us.
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Mon, 17 Dec 2012 15:57:02 -0800 |
parents | 52620e5db2f6 |
children | 8cf7f0c4cb14 |
comparison
equal
deleted
inserted
replaced
18088:52620e5db2f6 | 18089:0127366df8fe |
---|---|
68 warn("%s: %s\n" % (f, warning)) | 68 warn("%s: %s\n" % (f, warning)) |
69 except IOError, inst: | 69 except IOError, inst: |
70 if f != files[0]: | 70 if f != files[0]: |
71 warn(_("skipping unreadable ignore file '%s': %s\n") % | 71 warn(_("skipping unreadable ignore file '%s': %s\n") % |
72 (f, inst.strerror)) | 72 (f, inst.strerror)) |
73 return pats | 73 return [(f, pats[f]) for f in files if f in pats] |
74 | 74 |
75 def ignore(root, files, warn): | 75 def ignore(root, files, warn): |
76 '''return matcher covering patterns in 'files'. | 76 '''return matcher covering patterns in 'files'. |
77 | 77 |
78 the files parsed for patterns include: | 78 the files parsed for patterns include: |
93 pattern # pattern of the current default type''' | 93 pattern # pattern of the current default type''' |
94 | 94 |
95 pats = readpats(root, files, warn) | 95 pats = readpats(root, files, warn) |
96 | 96 |
97 allpats = [] | 97 allpats = [] |
98 for patlist in pats.values(): | 98 for f, patlist in pats: |
99 allpats.extend(patlist) | 99 allpats.extend(patlist) |
100 if not allpats: | 100 if not allpats: |
101 return util.never | 101 return util.never |
102 | 102 |
103 try: | 103 try: |
104 ignorefunc = match.match(root, '', [], allpats) | 104 ignorefunc = match.match(root, '', [], allpats) |
105 except util.Abort: | 105 except util.Abort: |
106 # Re-raise an exception where the src is the right file | 106 # Re-raise an exception where the src is the right file |
107 for f, patlist in pats.iteritems(): | 107 for f, patlist in pats: |
108 try: | 108 try: |
109 match.match(root, '', [], patlist) | 109 match.match(root, '', [], patlist) |
110 except util.Abort, inst: | 110 except util.Abort, inst: |
111 raise util.Abort('%s: %s' % (f, inst[0])) | 111 raise util.Abort('%s: %s' % (f, inst[0])) |
112 | 112 |