Make parents with a file but not a revision use working directory revision.
authorBrendan Cully <brendan@kublai.com>
Thu, 14 Jun 2007 10:58:49 -0700
changeset 4584 0d26e3d0eeeb
parent 4582 7de7a80e7422
child 4585 d2dde1681933
Make parents with a file but not a revision use working directory revision.
mercurial/commands.py
tests/test-parents
tests/test-parents.out
--- a/mercurial/commands.py	Thu Jun 14 11:33:32 2007 +0200
+++ b/mercurial/commands.py	Thu Jun 14 10:58:49 2007 -0700
@@ -1877,17 +1877,20 @@
 def parents(ui, repo, file_=None, **opts):
     """show the parents of the working dir or revision
 
-    Print the working directory's parent revisions.
+    Print the working directory's parent revisions. If a
+    revision is given via --rev, the parent of that revision
+    will be printed. If a file argument is given, revision in
+    which the file was last changed (before the working directory
+    revision or the argument to --rev if given) is printed.
     """
     rev = opts.get('rev')
-    if rev:
-        if file_:
-            ctx = repo.filectx(file_, changeid=rev)
-        else:
-            ctx = repo.changectx(rev)
-        p = [cp.node() for cp in ctx.parents()]
+    if file_:
+        ctx = repo.filectx(file_, changeid=rev)
+    elif rev:
+        ctx = repo.changectx(rev)
     else:
-        p = repo.dirstate.parents()
+        ctx = repo.workingctx()
+    p = [cp.node() for cp in ctx.parents()]
 
     displayer = cmdutil.show_changeset(ui, repo, opts)
     for n in p:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-parents	Thu Jun 14 10:58:49 2007 -0700
@@ -0,0 +1,27 @@
+#!/bin/sh
+# test parents command
+
+hg init a
+cd a
+echo % no working directory
+hg parents
+
+echo a > a
+echo b > b
+hg ci -Amab -d '0 0'
+echo a >> a
+hg ci -Ama -d '1 0'
+echo b >> b
+hg ci -Amb -d '2 0'
+
+echo % hg parents
+hg parents
+
+echo % hg parents a
+hg parents a
+
+echo % hg parents -r 2
+hg parents -r 2
+
+echo % hg parents -r 2 a
+hg parents -r 2 a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-parents.out	Thu Jun 14 10:58:49 2007 -0700
@@ -0,0 +1,28 @@
+% no working directory
+adding a
+adding b
+% hg parents
+changeset:   2:6cfac479f009
+tag:         tip
+user:        test
+date:        Thu Jan 01 00:00:02 1970 +0000
+summary:     b
+
+% hg parents a
+changeset:   0:b6a1406d8886
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     ab
+
+% hg parents -r 2
+changeset:   1:d786049f033a
+user:        test
+date:        Thu Jan 01 00:00:01 1970 +0000
+summary:     a
+
+% hg parents -r 2 a
+changeset:   0:b6a1406d8886
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     ab
+