Show More
@@ -534,6 +534,8 b' def revrange(repo, revs):' | |||
|
534 | 534 | |
|
535 | 535 | seen, l = set(), [] |
|
536 | 536 | for spec in revs: |
|
537 | if l and not seen: | |
|
538 | seen = set(l) | |
|
537 | 539 | # attempt to parse old-style ranges first to deal with |
|
538 | 540 | # things like old-tag which contain query metacharacters |
|
539 | 541 | try: |
@@ -547,11 +549,18 b' def revrange(repo, revs):' | |||
|
547 | 549 | start = revfix(repo, start, 0) |
|
548 | 550 | end = revfix(repo, end, len(repo) - 1) |
|
549 | 551 | step = start > end and -1 or 1 |
|
550 | for rev in xrange(start, end + step, step): | |
|
551 | if rev in seen: | |
|
552 | if not seen and not l: | |
|
553 | # by far the most common case: revs = ["-1:0"] | |
|
554 | l = range(start, end + step, step) | |
|
555 | # defer syncing seen until next iteration | |
|
552 | 556 |
|
|
553 | seen.add(rev) | |
|
554 |
|
|
|
557 | newrevs = set(xrange(start, end + step, step)) | |
|
558 | if seen: | |
|
559 | newrevs.difference_update(seen) | |
|
560 | seen.union(newrevs) | |
|
561 | else: | |
|
562 | seen = newrevs | |
|
563 | l.extend(sorted(newrevs, reverse=start > end)) | |
|
555 | 564 | continue |
|
556 | 565 | elif spec and spec in repo: # single unquoted rev |
|
557 | 566 | rev = revfix(repo, spec, None) |
General Comments 0
You need to be logged in to leave comments.
Login now