0

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?

Ben Matheja
  • 115
  • 2
  • 2
  • 12

2 Answers2

0

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

Lazy Badger
  • 94,711
  • 9
  • 78
  • 110
  • I did exactly what you propose as second way to success. But it wont work out. To be honest i cannot explain that to me since the environment a mapped network drive produces should be most likely to a local FS – Ben Matheja Jun 20 '13 at 12:30
  • @Ben - "abort: y:\.hg/store/journal: The system cannot find the file specified" - do you **really** have repository on Y drive? – Lazy Badger Jun 20 '13 at 18:14
  • yes, the repository is on the webdav and i mapped the network-drive to the letter y. "https://example.com/dav/" is the full path – Ben Matheja Jun 20 '13 at 22:04
0

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.

Evert
  • 93,428
  • 18
  • 118
  • 189