【问题标题】:cannot push changes to repository on webDAV无法将更改推送到 webDAV 上的存储库
【发布时间】:2013-06-17 03:48:36
【问题描述】:

今天我尝试将更改推送到我们托管在运行 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 应该能够将更改推送到网络服务器,就像它推送到本地目录一样。

有人可以确认吗?

【问题讨论】:

    标签: mercurial webdav tortoisehg apache2.2 hgsubversion


    【解决方案1】:

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

    也有可能是一些更简单的事情出错了,比如 apache 阻止访问以 . 开头的路径。

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

    【讨论】:

      【解决方案2】:

      Mercurial 的 http 存储库从不在 WebDAV 上发言

      您必须使用任何支持 Mercurial 的 Web 前端与 repo 通信或将 WebDAV 驱动器挂载为本地驱动器并访问其上的存储库作为本地 FS 上的存储库

      【讨论】:

      • 我完全按照您的建议作为成功的第二种方式。但它不会奏效。老实说,我无法向我解释,因为映射网络驱动器产生的环境最有可能是本地 FS
      • @Ben - "abort: y:\.hg/store/journal: 系统找不到指定的文件" - 你真的在 Y 盘上有存储库吗?
      • 是的,存储库在 webdav 上,我将网络驱动器映射到字母 y。 “example.com/dav/<myrepository>”是完整路径
      猜你喜欢
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 2013-04-11
      • 2021-11-27
      • 1970-01-01
      相关资源
      最近更新 更多