接收错误代码:从Eclipse插件推送到Mercurial repo时为255

时间:2011-08-25 11:08:22

标签: eclipse mercurial eclipse-plugin hgeclipse

我在这里使用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

2 个答案:

答案 0 :(得分:6)

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

  • 更改本地存储库中的权限,以便网络服务器获得写入权限(这意味着您需要使用chmod为(和包括).hg下的所有文件和目录设置写入权限,还需要设置粘性-bit到所有目录)
  • 为网络服务器提供一个自己的仓库,由服务器拥有。

给网络提供自己的回购:

$ 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推送甚至在具有Web服务器的计算机上,因为作为普通用户,您没有对Web服务器存储库的写入权限。

答案 1 :(得分:0)

这对我来说,虽然它是一个不同的系统设置:TortoiseHg 在Repository Settings -> Server中,我将Allow Push设置为*
这是在私人网络上,所以在防火墙后面安全。