# HG changeset patch # User Brendan Cully # Date 1181843929 25200 # Node ID 0d26e3d0eeebd00be5cedfae5757e08e91121ec0 # Parent 7de7a80e742207204969f85188e6c4d6c6b493bd Make parents with a file but not a revision use working directory revision. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1877,17 +1877,20 @@ def outgoing(ui, repo, dest=None, **opts 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: diff --git a/tests/test-parents b/tests/test-parents new file mode 100755 --- /dev/null +++ b/tests/test-parents @@ -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 diff --git a/tests/test-parents.out b/tests/test-parents.out new file mode 100644 --- /dev/null +++ b/tests/test-parents.out @@ -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 +