##// END OF EJS Templates
revsets: make revpair revsets-aware...
Matt Mackall -
r12617:2063d36b default
parent child Browse files
Show More
@@ -112,32 +112,18 b' def loglimit(opts):'
112 return limit
112 return limit
113
113
114 def revpair(repo, revs):
114 def revpair(repo, revs):
115 '''return pair of nodes, given list of revisions. second item can
116 be None, meaning use working dir.'''
117
118 def revfix(repo, val, defval):
119 if not val and val != 0 and defval is not None:
120 val = defval
121 return repo.lookup(val)
122
123 if not revs:
115 if not revs:
124 return repo.dirstate.parents()[0], None
116 return repo.dirstate.parents()[0], None
125 end = None
117
126 if len(revs) == 1:
118 l = revrange(repo, revs)
127 if revrangesep in revs[0]:
119
128 start, end = revs[0].split(revrangesep, 1)
120 if len(l) == 0:
129 start = revfix(repo, start, 0)
121 return repo.dirstate.parents()[0], None
130 end = revfix(repo, end, len(repo) - 1)
122
131 else:
123 if len(l) == 1:
132 start = revfix(repo, revs[0], None)
124 return repo.lookup(l[0]), None
133 elif len(revs) == 2:
125
134 if revrangesep in revs[0] or revrangesep in revs[1]:
126 return repo.lookup(l[0]), repo.lookup(l[-1])
135 raise util.Abort(_('too many revisions specified'))
136 start = revfix(repo, revs[0], None)
137 end = revfix(repo, revs[1], None)
138 else:
139 raise util.Abort(_('too many revisions specified'))
140 return start, end
141
127
142 def revrange(repo, revs):
128 def revrange(repo, revs):
143 """Yield revision as strings from a list of revision specifications."""
129 """Yield revision as strings from a list of revision specifications."""
@@ -33,8 +33,8 b''
33 +123
33 +123
34
34
35 $ hg diff -r ""
35 $ hg diff -r ""
36 abort: 00changelog.i@: ambiguous identifier!
36 hg: parse error: empty query
37 [255]
37 [255]
38 $ hg diff -r tip -r ""
38 $ hg diff -r tip -r ""
39 abort: 00changelog.i@: ambiguous identifier!
39 hg: parse error: empty query
40 [255]
40 [255]
General Comments 0
You need to be logged in to leave comments. Login now