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,