0

今日、webdav (HTTPS 経由) を実行している apache (2.2.x) でホストされている共有リポジトリに変更をプッシュしようとしました。dav-directory のリポジトリは、私の作業ディレクトリのクローンです。オプション NoUpdate が有効になっています。両方のリポジトリが開始されます。

次に進むために、dav-directory/repositoy をネットワーク ドライブとしてマップし、リポジトリを "y:/" にプッシュするように設定しました。Workbench からプッシュしようとすると、例外 "aborted, ret 255" がスローされます。

% hg --repository C:\wamp\www\ommon push y:
pushing to y:
searching for changes
abort: Y:\.hg/store/journal: The system cannot find the file specified
[command returned code 255 Thu Jun 20 12:08:28 2013]

コマンドラインスローからのプッシュ:

pushing to y:\
searching for changes
abort: y:\.hg/store/journal: The system cannot find the file specified
Exception AttributeError: "'transaction' object has no attribute 'file'" in 
<bound method transaction.__del__ of <mercurial.transaction.transaction object>>

サイドスワップされた仕切りが奇妙に見えるので、ディレクトリへのパスを変更しようとしました。しかし、それは成功しませんでした。

詳細情報: hgweb や cgi スクリプト ベースのバージョンは使用していません。

EDIT問題に関する複数のGoogleエントリにより、webDAVによって提供されるリポジトリに変更をプッシュすることは完全には不可能であるという考えが残りました。さらに、それを解決するには hgWeb を使用する必要があります。

しかし、なぜ私はしなければならないのですか?私の考えでは、webDAV は書き込みが可能です。ディレクトリをネットワーク ドライブとしてマップしたので、mercurial は、ローカル ディレクトリと同様に、Web サーバーに変更をプッシュできるはずです。

誰かがこれを確認できますか?

4

2 に答える 2

0

Windows の WebDAV サポートは不安定な場合があります。Mercurial の高度なファイル システム操作が原因で、OS が何かを誤って実行したり、apache の mod_dav が処理できない何かを行ったりする可能性が非常に高くなります。

また、Apache が..

Apache ログで何かを見つけることができるかもしれませんが、これを行うのではなく、代わりに真の mercurial サーバーを使用することをお勧めします。

于 2013-06-24T23:40:49.153 に答える
0

Mercurial の http-repositoriesは WebDAV で決して話さない

リポジトリとの通信に Mercurial 対応の Web フロントエンドを使用するか、WebDAV ドライブをローカル ドライブとしてマウントし、その上のリポジトリにローカル FS のリポジトリとしてアクセスする必要があります。

于 2013-06-20T12:21:02.937 に答える