2
$ mkdir foo
$ cd foo
$ hg init .
$ hg log
abort: Is a directory
$ hg history
abort: Is a directory

Darwin Host.local 9.6.1 达尔文内核版本 9.6.1:2008 年 12 月 10 日星期三 10:38:33 PST;根:xnu-1228.9.75~3/RELEASE_I386 i386

$ hg --version
Mercurial Distributed SCM (version 1.2.1)
$ python --version
Python 2.5.4

(全部通过 macports 安装)

想法?谷歌什么也没给我们。

更新:

(作为根):

$ hg init /tmp/foo
$ cd /tmp/foo; hg log
(works)

(作为用户):

$ hg init /tmp/bar
$ cd /tmp/bar; hg log
abort: Is a directory

所以特拉维斯是对的(见评论)它在某处看起来确实是一个权限问题,但在哪里呢?这是仅一周前的 Leopard 库存安装和 python 和 mercurial 的 macport 版本的库存安装。我希望当它有权限问题时,这不是善变的错误消息的想法。

第二次更新(来自下面的 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

此外,临时目录是您期望的位置。权限看起来不错。

4

4 回答 4

1

不是对您的问题的直接回答,但我已经成功地从这里使用 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
于 2009-04-08T19:05:04.353 回答
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
于 2009-04-09T22:11:37.567 回答
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

(作品)

于 2009-06-22T06:12:37.647 回答
0

我又看了看,它实际上是由 .hgrc 行引起的:

风格 = gitweb

为什么我不确定,但错误消息确实很糟糕。

于 2009-06-22T06:26:16.323 回答