mercurial/revset.py
changeset 12928 a5f7f1e9340e
parent 12859 76066903ae08
child 12929 515c2786e1cf
--- 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):