Search code examples
eclipsemercurialeclipse-pluginhgeclipse

Receiving Error Code: 255 when pushing to Mercurial repo from Eclipse Plugin


I am using HgEclipse from here: http://www.javaforge.com/project/HGE

I have created a new repository on my server to test the plugin. I cloned the repository, added some files, committed and attempted to push but received the following error message...

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

From some Googling I can find that the 255 error is to do with Authentication, but the password is correct, otherwise I wouldn't be able to clone in the first place.

Any help or suggestions would be much appreciated.

Thanks

EDIT: After updating my system to the latest versions I am now also getting this from the command line when pushing (which was previously working):

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

Solution

  • Your webserver can't write into the repository. You can either

    • change the permissions in the local repo so that the webserver get write permissions there (which means you need to set up write permissions with chmod for all files and directories under (and including) .hg, also you need to set the sticky-bit to all directories)
    • give the webserver an own repo, which is owned by the server.

    Giving the web serve a repo of its own looks like this:

    $ 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
    

    A drawback of this method is that you need to push via http even on the machine with the webserver, since as a normal user you don't have write permissions to the webserver repo.