mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
scmutil: fix revrange when multiple revs are specified
revrange was trying to add a list to a revset class, but revset classes only support adding with other revset classes. So wrap the lists in basesets.
This commit is contained in:
parent
aba75e33f4
commit
c173245d83
@ -499,7 +499,7 @@ def revrange(repo, revs):
|
||||
try:
|
||||
if isinstance(spec, int):
|
||||
seen.add(spec)
|
||||
l = l + [spec]
|
||||
l = l + revset.baseset([spec])
|
||||
continue
|
||||
|
||||
if _revrangesep in spec:
|
||||
@ -520,14 +520,14 @@ def revrange(repo, revs):
|
||||
seen.update(newrevs)
|
||||
else:
|
||||
seen = newrevs
|
||||
l = l + sorted(newrevs, reverse=start > end)
|
||||
l = l + revset.baseset(sorted(newrevs, reverse=start > end))
|
||||
continue
|
||||
elif spec and spec in repo: # single unquoted rev
|
||||
rev = revfix(repo, spec, None)
|
||||
if rev in seen:
|
||||
continue
|
||||
seen.add(rev)
|
||||
l = l + [rev]
|
||||
l = l + revset.baseset([rev])
|
||||
continue
|
||||
except error.RepoLookupError:
|
||||
pass
|
||||
@ -536,7 +536,7 @@ def revrange(repo, revs):
|
||||
m = revset.match(repo.ui, spec, repo)
|
||||
if seen or l:
|
||||
dl = [r for r in m(repo, revset.spanset(repo)) if r not in seen]
|
||||
l = l + dl
|
||||
l = l + revset.baseset(dl)
|
||||
seen.update(dl)
|
||||
else:
|
||||
l = m(repo, revset.spanset(repo))
|
||||
|
@ -734,6 +734,16 @@ parentrevspec
|
||||
hg: parse error: ^ expects a number 0, 1, or 2
|
||||
[255]
|
||||
|
||||
multiple revspecs
|
||||
|
||||
$ hg log -r 'tip~1:tip' -r 'tip~2:tip~1' --template '{rev}\n'
|
||||
8
|
||||
9
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
|
||||
aliases:
|
||||
|
||||
$ echo '[revsetalias]' >> .hg/hgrc
|
||||
|
Loading…
Reference in New Issue
Block a user