4

我从这里使用 HgEclipse:http ://www.javaforge.com/project/HGE

我在我的服务器上创建了一个新的存储库来测试插件。我克隆了存储库,添加了一些文件,提交并尝试推送,但收到以下错误消息...

abort: HTTP Error 500: Internal Server Error. Command line: 
/home/james/workspace/project:hg -y push http://***@[repository location], 
error code: 255

从一些谷歌搜索我可以发现 255 错误与身份验证有关,但密码是正确的,否则我将无法首先克隆。

任何帮助或建议将不胜感激。

谢谢

编辑:将我的系统更新到最新版本后,我现在也可以在推送时从命令行获取这个(以前可以工作):

abort: HTTP Error 500: Permission denied: .hg/store/data/path-to-file.i
4

2 回答 2

6

您的网络服务器无法写入存储库。你可以

  • 更改本地存储库中的权限,以便网络服务器在那里获得写权限(这意味着您需要使用 chmod 为 .hg 下(包括)下的所有文件和目录设置写权限,还需要将粘性位设置为所有目录)
  • 给网络服务器一个自己的 repo,它归服务器所有。

为 web 服务提供一个自己的 repo,如下所示:

$ sudo bash
# mkdir /srv/repo-base
# chown www-data /srv/repo-base
# cd /srv/repo-base
# su -c "hg clone /path/to/current/repo web-repo-name" www-data
# vi /etc/apache2/sites-available/$SITE_CONFIG_FILE # change the repo path to /srv/repo-base/web-repo-name
# /etc/init.d/apache2 reload

这种方法的一个缺点是,即使在带有网络服务器的机器上,您也需要通过 http 推送,因为作为普通用户,您没有网络服务器存储库的写入权限。

于 2011-08-30T13:53:46.117 回答
0

这为我回答了这个问题,尽管它是一个不同的系统设置:TortoiseHg。
在 中Repository Settings -> Server,我设置Allow Push*
这是在防火墙后面的专用网络上。

于 2017-03-22T10:55:23.430 回答