質問

Today i've tried to push changes into our shared repository hosted on an apache(2.2.x) running webdav(over HTTPS). The repository in the dav-directory is a clone of my working directory. Option NoUpdate is enabled. Both Repositories are initiated.

To move on I mapped the dav-directory/repositoy as network drive and set the repository to push to "y:/" When I try to push from Workbench the exception "aborted, ret 255" is thrown.

% 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 from commandline throws:

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>>

I tried to alter the path to directory since the side-swapped dividers are looking strange to me. But it did not succeed.

Further information: I'm not using hgweb or any cgi-script based version.

EDIT Multiple google entries in reference to the issue left me with the idea that pushing changes to a repository provided by webDAV is not entirely possible. Further I have to use hgWeb to resolve that.

But why do I have to? My idea is that webDAV is capable of writing. Since i mapped the directory as a network drive - mercurial should be able to push changes on to the webserver likewise it does to a local directory.

Can someone confirm this?

役に立ちましたか?

解決

Windows WebDAV support can be shaky. It's very possible that because of mercurial's likely advanced file-system operations, the OS does something incorrectly, or something apache's mod_dav cannot cope with.

It's also possible that something simpler is wrong, like apache blocking access to paths starting with a ..

You may be able to find something in your apache log, but I would recommend not doing this and use a true mercurial server instead.

他のヒント

Mercurial's http-repositories NEVER speak on WebDAV

You have to use any Mercurial-capable web-frontend for communication with repo or mount WebDAV-drive as local drive and access repository on it as repository on local FS

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top