Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/cmdutil.py @ 8368:52e6117a9940
cmdutil: replace pseudo-set by real set
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Tue, 12 May 2009 01:08:28 +0200 |
parents | acc202b71619 |
children | beae42f3d93b |
comparison
equal
deleted
inserted
replaced
8367:7cf3d20f5967 | 8368:52e6117a9940 |
---|---|
152 def revfix(repo, val, defval): | 152 def revfix(repo, val, defval): |
153 if not val and val != 0 and defval is not None: | 153 if not val and val != 0 and defval is not None: |
154 return defval | 154 return defval |
155 return repo.changelog.rev(repo.lookup(val)) | 155 return repo.changelog.rev(repo.lookup(val)) |
156 | 156 |
157 seen, l = {}, [] | 157 seen, l = set(), [] |
158 for spec in revs: | 158 for spec in revs: |
159 if revrangesep in spec: | 159 if revrangesep in spec: |
160 start, end = spec.split(revrangesep, 1) | 160 start, end = spec.split(revrangesep, 1) |
161 start = revfix(repo, start, 0) | 161 start = revfix(repo, start, 0) |
162 end = revfix(repo, end, len(repo) - 1) | 162 end = revfix(repo, end, len(repo) - 1) |
163 step = start > end and -1 or 1 | 163 step = start > end and -1 or 1 |
164 for rev in xrange(start, end+step, step): | 164 for rev in xrange(start, end+step, step): |
165 if rev in seen: | 165 if rev in seen: |
166 continue | 166 continue |
167 seen[rev] = 1 | 167 seen.add(rev) |
168 l.append(rev) | 168 l.append(rev) |
169 else: | 169 else: |
170 rev = revfix(repo, spec, None) | 170 rev = revfix(repo, spec, None) |
171 if rev in seen: | 171 if rev in seen: |
172 continue | 172 continue |
173 seen[rev] = 1 | 173 seen.add(rev) |
174 l.append(rev) | 174 l.append(rev) |
175 | 175 |
176 return l | 176 return l |
177 | 177 |
178 def make_filename(repo, pat, node, | 178 def make_filename(repo, pat, node, |