diff -r b6245c2470a9 -r a5f7f1e9340e mercurial/revset.py --- a/mercurial/revset.py Thu Nov 04 09:04:37 2010 +0100 +++ b/mercurial/revset.py Thu Nov 04 16:59:03 2010 -0500 @@ -202,9 +202,12 @@ return [r for r in subset if r == l] def p1(repo, subset, x): - """``p1(set)`` - First parent of changesets in set. + """``p1([set])`` + First parent of changesets in set, or the working directory. """ + if x is None: + return [repo[x].parents()[0].rev()] + ps = set() cl = repo.changelog for r in getset(repo, range(len(repo)), x): @@ -212,9 +215,16 @@ return [r for r in subset if r in ps] def p2(repo, subset, x): - """``p2(set)`` - Second parent of changesets in set. + """``p2([set])`` + Second parent of changesets in set, or the working directory. """ + if x is None: + ps = repo[x].parents() + try: + return [ps[1].rev()] + except IndexError: + return [] + ps = set() cl = repo.changelog for r in getset(repo, range(len(repo)), x):