无法将更改推送到webDAV上的存储库

时间:2013-06-20 10:16:05

标签: mercurial webdav tortoisehg apache2.2 hgsubversion

今天我尝试将更改推送到运行webdav(通过HTTPS)的apache(2.2.x)上托管的共享存储库中。 dav目录中的存储库是我的工作目录的克隆。选项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脚本的版本。

编辑多个参与该问题的Google条目让我觉得将更改推送到webDAV提供的存储库是不可能的。此外,我必须使用hgWeb来解决这个问题。

但我为什么要这样做?我的想法是webDAV能够写作。由于我将目录映射为网络驱动器 - mercurial应该能够将更改推送到Web服务器,就像它对本地目录一样。

有人可以证实吗?

2 个答案:

答案 0 :(得分:0)

Mercurial的http-repositories 从不在WebDAV上发言

您必须使用任何具有Mercurial功能的Web前端与repo进行通信,或者将WebDAV驱动器作为本地驱动器和访问存储库作为本地FS上的存储库

答案 1 :(得分:0)

Windows WebDAV支持可能不稳定。很可能因为mercurial可能是高级文件系统操作,操作系统做错了,或者apache的mod_dav无法应对。

也有可能出现更简单的错误,例如apache阻止访问以.开头的路径。

您可以在apache日志中找到一些内容,但我建议不要这样做并使用真正的mercurial服务器。