Mercurial > hg
changeset 5298:cba2a689117d
parents: make it match the doc when called on a file
parents used to return the parent revision of the last revision updating selected file, instead of the updating revision itself.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 11 Sep 2007 23:04:42 +0200 |
parents | c8efd19e248c |
children | 5a4824f6665c |
files | mercurial/commands.py |
diffstat | 1 files changed, 19 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Tue Sep 11 13:23:59 2007 -0700 +++ b/mercurial/commands.py Tue Sep 11 23:04:42 2007 +0200 @@ -1985,16 +1985,30 @@ revision or the argument to --rev if given) is printed. """ rev = opts.get('rev') + if rev: + ctx = repo.changectx(rev) + else: + ctx = repo.workingctx() + if file_: files, match, anypats = cmdutil.matchpats(repo, (file_,), opts) if anypats or len(files) != 1: raise util.Abort(_('can only specify an explicit file name')) - ctx = repo.filectx(files[0], changeid=rev) - elif rev: - ctx = repo.changectx(rev) + file_ = files[0] + filenodes = [] + for cp in ctx.parents(): + if not cp: + continue + try: + filenodes.append(cp.filenode(file_)) + except revlog.LookupError: + pass + if not filenodes: + raise util.Abort(_("'%s' not found in manifest!") % file_) + fl = repo.file(file_) + p = [repo.lookup(fl.linkrev(fn)) for fn in filenodes] else: - ctx = repo.workingctx() - p = [cp.node() for cp in ctx.parents()] + p = [cp.node() for cp in ctx.parents()] displayer = cmdutil.show_changeset(ui, repo, opts) for n in p: