# HG changeset patch # User Kevin Bullock # Date 1288908540 18000 # Node ID 515c2786e1cfc4a823458df20118a2072cb27864 # Parent a5f7f1e9340e2cb19882fc64d7370a61124fe63f 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. diff -r a5f7f1e9340e -r 515c2786e1cf mercurial/revset.py --- a/mercurial/revset.py Thu Nov 04 16:59:03 2010 -0500 +++ b/mercurial/revset.py Thu Nov 04 17:09:00 2010 -0500 @@ -232,9 +232,13 @@ return [r for r in subset if r in ps] def parents(repo, subset, x): - """``parents(set)`` - The set of all parents for all changesets in set. + """``parents([set])`` + The set of all parents for all changesets in set, or the working directory. """ + repo.ui.debug(repr(x), '\n') + if x is None: + return [r.rev() for r in repo[x].parents()] + ps = set() cl = repo.changelog for r in getset(repo, range(len(repo)), x): diff -r a5f7f1e9340e -r 515c2786e1cf tests/test-revset-dirstate-parents.t --- a/tests/test-revset-dirstate-parents.t Thu Nov 04 16:59:03 2010 -0500 +++ b/tests/test-revset-dirstate-parents.t Thu Nov 04 17:09:00 2010 -0500 @@ -21,6 +21,7 @@ null revision $ log 'p1()' $ log 'p2()' + $ log 'parents()' working dir with a single parent $ echo a > a @@ -28,6 +29,8 @@ $ log 'p1()' 0 $ log 'p2()' + $ log 'parents()' + 0 merge in progress $ echo b > b @@ -40,3 +43,6 @@ 2 $ log 'p2()' 1 + $ log 'parents()' + 2 + 1