Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 12929:515c2786e1cf
revsets: let parents() return parents of working dir
This patch makes the 'set' argument to revset function parents() optional.
Like p1() and p2(), if no argument is given, returns the parent(s) of the
working directory.
Morally equivalent to 'p1()+p2()', as expected.
author | Kevin Bullock <kbullock@ringworld.org> |
---|---|
date | Thu, 04 Nov 2010 17:09:00 -0500 |
parents | a5f7f1e9340e |
children | 98b79c892768 |
comparison
equal
deleted
inserted
replaced
12928:a5f7f1e9340e | 12929:515c2786e1cf |
---|---|
230 for r in getset(repo, range(len(repo)), x): | 230 for r in getset(repo, range(len(repo)), x): |
231 ps.add(cl.parentrevs(r)[1]) | 231 ps.add(cl.parentrevs(r)[1]) |
232 return [r for r in subset if r in ps] | 232 return [r for r in subset if r in ps] |
233 | 233 |
234 def parents(repo, subset, x): | 234 def parents(repo, subset, x): |
235 """``parents(set)`` | 235 """``parents([set])`` |
236 The set of all parents for all changesets in set. | 236 The set of all parents for all changesets in set, or the working directory. |
237 """ | 237 """ |
238 repo.ui.debug(repr(x), '\n') | |
239 if x is None: | |
240 return [r.rev() for r in repo[x].parents()] | |
241 | |
238 ps = set() | 242 ps = set() |
239 cl = repo.changelog | 243 cl = repo.changelog |
240 for r in getset(repo, range(len(repo)), x): | 244 for r in getset(repo, range(len(repo)), x): |
241 ps.update(cl.parentrevs(r)) | 245 ps.update(cl.parentrevs(r)) |
242 return [r for r in subset if r in ps] | 246 return [r for r in subset if r in ps] |