hg parents: don't pass an OS-specific path to repo.filectx

The only reason to use the matcher code instead of calling util.canonpath
directly is to be able to use "path:canonical/path/to/file" patterns.
This commit is contained in:
Alexis S. L. Carvalho 2007-07-17 09:08:29 -03:00
parent 1e9e9e4cdd
commit 4770c831b2
3 changed files with 39 additions and 3 deletions

View File

@ -1978,7 +1978,10 @@ def parents(ui, repo, file_=None, **opts):
"""
rev = opts.get('rev')
if file_:
ctx = repo.filectx(file_, changeid=rev)
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)
else:

View File

@ -1,8 +1,8 @@
#!/bin/sh
# test parents command
hg init a
cd a
hg init repo
cd repo
echo % no working directory
hg parents
@ -25,3 +25,20 @@ hg parents -r 2
echo % hg parents -r 2 a
hg parents -r 2 a
echo % hg parents -r 2 ../a
hg parents -r 2 ../a
echo '% cd dir; hg parents -r 2 ../a'
mkdir dir
cd dir
hg parents -r 2 ../a
echo '% hg parents -r 2 path:a'
hg parents -r 2 path:a
echo '% hg parents -r 2 glob:a'
cd ..
hg parents -r 2 glob:a
true

View File

@ -26,3 +26,19 @@ user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: ab
% hg parents -r 2 ../a
abort: ../a not under root
% cd dir; hg parents -r 2 ../a
changeset: 0:b6a1406d8886
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: ab
% hg parents -r 2 path:a
changeset: 0:b6a1406d8886
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: ab
% hg parents -r 2 glob:a
abort: can only specify an explicit file name