$ mkdir foo
$ cd foo
$ hg init .
$ hg log
abort: Is a directory
$ hg history
abort: Is a directory
Darwin Host.local 9.6.1 Darwin内核版本9.6.1:Wed Dec 10 10:38:33 PST 2008; root:xnu-1228.9.75~3 / RELEASE_I386 i386
$ hg --version
Mercurial Distributed SCM (version 1.2.1)
$ python --version
Python 2.5.4
(全部通过macports安装)
思考?谷歌没有给我们什么。
更新
(以root身份):
$ hg init /tmp/foo
$ cd /tmp/foo; hg log
(works)
(以用户身份):
$ hg init /tmp/bar
$ cd /tmp/bar; hg log
abort: Is a directory
所以特拉维斯是对的(见评论)它确实看起来像某个地方的许可问题,但在哪里?这是Leopard的库存安装,只有一周的时间和macport版本的python和mercurial的库存安装。我希望当有权限问题时,这不是一个好的错误消息的想法。
第二次更新(来自下面的dkbits建议):
$ sudo dtruss hg log
[snip]
...
stat("/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site- packages/mercurial/templates/gitweb\0", 0xBFFFC7DC, 0x1000) = 0 0
open_nocancel("/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/mercurial/templates/gitweb\0", 0x0, 0x1B6) = 3 0
fstat(0x3, 0xBFFFC900, 0x1B6) = 0 0
close_nocancel(0x3) = 0 0
write_nocancel(0x2, "abort: Is a directory\n\0", 0x16) = 22 0
此外,临时目录是您期望的目的。权限看起来还不错。
答案 0 :(得分:1)
不能直接回答您的问题,但我已经成功地使用了来自here的Mercurial预打包二进制文件和OSX 10.5上的标准Python 2.5.1安装。
$ mkdir foo
$ cd foo
$ hg init .
$ hg log
$ hg history
$ hg --version
Mercurial Distributed SCM (version 1.2.1)
$ python --version
Python 2.5.1
答案 1 :(得分:1)
从https://www.mercurial-scm.org/bts/issue233开始,有一个有趣的追溯:
hg --traceback qpop
Traceback (most recent call last):
[...]
File "/export/home/bos/lib/python/mercurial/util.py", line 747, in o
rename(mktempcopy(f), f)
File "/export/home/bos/lib/python/mercurial/util.py", line 690, in mktempcopy
fp.write(posixfile(name, "rb").read())
IOError: [Errno 21] Is a directory
abort: Is a directory
也许权限错误与您的临时文件夹有关?要找到临时目录,请执行..
$ python
>>> import tempfile
>>> print tempfile.gettempdir()
应该在/var/folders/[...]/[...]/-Tmp-/
同样受到上述链接的启发,您可以尝试运行..
$ hg init /tmp/bar
$ cd /tmp/bar
$ hg --traceback log
答案 2 :(得分:0)
我发现了问题:
如果你将.hgrc符号链接到某处,就会导致这种情况发生。肯定是mercurial中的一个错误(以及一个愚蠢的错误消息)。
$ rm -f ~/.hgrc
$ hg init foo
$ cd foo
$ hg log
(作品)
$ ls -l ~/Dropbox/.hgrc
-rw-r--r--@ 1 schubert staff 83 Jan 9 02:15 /Users/schubert/Dropbox/.hgrc
$ ln -s ~/Dropbox/.hgrc ~/.hgrc
$ hg log
abort: Is a directory
$ rm -f ~/.hgrc
$ hg log
(作品)
答案 3 :(得分:0)
我又看了一眼,它实际上是由.hgrc行引起的:
style = gitweb
为什么我不确定,但错误信息确实很糟糕。