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 Darwin Kernel バージョン 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

(すべてmacport経由でインストール)

考え?グーグルは私たちに何も与えません。

アップデート:

(ルートとして):

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

(ユーザーとして):

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

だからトラビスは正しかった(コメントを見てください)それはどこかで許可の問題のように見えますが、どこで? これは、わずか 1 週間前の Leopard のストック インストールであり、python と mercurial の macport バージョンのストック インストールです。パーミッションに問題がある場合、これが Mercurial の適切なエラー メッセージの考えではないことを願っています。

2回目の更新(以下の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

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 に答える
1

あなたの質問に対する直接的な回答ではありませんが、OSX 10.5 に標準の Python 2.5.1 をインストールして、こちらから Mercurial の事前にパッケージ化されたバイナリを問題なく使用できました。

$ 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 に答える
0

別の見方をしましたが、実際には.hgrc行が原因です。

スタイル=gitweb

なぜそうなのかはわかりませんが、エラーメッセージは確かにひどいものです。

于 2009-06-22T06:26:16.323 に答える
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 に答える