equal
deleted
inserted
replaced
8 from node import hex, nullid, nullrev, short |
8 from node import hex, nullid, nullrev, short |
9 from i18n import _ |
9 from i18n import _ |
10 import os, sys, errno, re, glob, tempfile |
10 import os, sys, errno, re, glob, tempfile |
11 import util, templater, patch, error, encoding, templatekw |
11 import util, templater, patch, error, encoding, templatekw |
12 import match as _match |
12 import match as _match |
13 import similar |
13 import similar, revset |
14 |
14 |
15 revrangesep = ':' |
15 revrangesep = ':' |
16 |
16 |
17 def parsealiases(cmd): |
17 def parsealiases(cmd): |
18 return cmd.lstrip("^").split("|") |
18 return cmd.lstrip("^").split("|") |
147 return defval |
147 return defval |
148 return repo.changelog.rev(repo.lookup(val)) |
148 return repo.changelog.rev(repo.lookup(val)) |
149 |
149 |
150 seen, l = set(), [] |
150 seen, l = set(), [] |
151 for spec in revs: |
151 for spec in revs: |
152 if revrangesep in spec: |
152 if spec and not ( |
|
153 spec.startswith(revrangesep) or spec.endswith(revrangesep)): |
|
154 m = revset.match(spec) |
|
155 for r in m(repo, range(len(repo))): |
|
156 l.append(r) |
|
157 seen.update(l) |
|
158 elif revrangesep in spec: |
153 start, end = spec.split(revrangesep, 1) |
159 start, end = spec.split(revrangesep, 1) |
154 start = revfix(repo, start, 0) |
160 start = revfix(repo, start, 0) |
155 end = revfix(repo, end, len(repo) - 1) |
161 end = revfix(repo, end, len(repo) - 1) |
156 step = start > end and -1 or 1 |
162 step = start > end and -1 or 1 |
157 for rev in xrange(start, end + step, step): |
163 for rev in xrange(start, end + step, step): |