18 messages in ru.sysoev.nginxRe: Running Mercurial using Nginx as ...
FromSent OnAttachments
ThomasJan 26, 2008 9:26 am 
Cliff WellsJan 26, 2008 11:14 am 
Adrian PerezJan 27, 2008 5:29 pm 
ThomasJan 29, 2008 2:58 am 
Marcin KasperskiJan 29, 2008 3:49 am 
ThomasJan 29, 2008 1:11 pm 
eliottJan 29, 2008 1:27 pm 
ThomasJan 29, 2008 1:34 pm 
ThomasJan 29, 2008 2:03 pm 
Manlio PerilloJan 29, 2008 2:30 pm 
ThomasJan 29, 2008 2:47 pm 
ThomasJan 29, 2008 3:23 pm 
ThomasJan 30, 2008 4:57 am 
Manlio PerilloJan 30, 2008 5:47 am 
ThomasJan 30, 2008 6:01 am 
ThomasJan 30, 2008 6:33 am 
Manlio PerilloJan 30, 2008 7:16 am 
ThomasMar 17, 2008 5:23 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: Running Mercurial using Nginx as http serverActions...
From:Thomas (iamk@public.gmane.org)
Date:Jan 29, 2008 1:34:26 pm
List:ru.sysoev.nginx

No I don't think it uses webdav.

I was thinking, could it problably be my hgweb.cgi file that is simply incapable of handling pushes over http?

Here is my hgweb.cgi file that I have renamed to index.cgi:

-----------------

#!/usr/bin/env python

import cgitb, os, sys cgitb.enable()

from mercurial import hgweb

h = hgweb.hgweb("/var/hg/repo1", "My nice Rails appilcation depot") h.run()

---------------------

As you can see it is rather small :-/

On Jan 29, 2008 10:27 PM, eliott
<elio@public.gmane.org> wrote:

How does it push? webdav?

I never tried mercurial pushing over http.

On 1/29/08, Thomas <iamk@public.gmane.org> wrote:

Hello guys,

I have heard some horror stories about mod_wsgi. Anyway I was finally able to make 99% mercurial work with nginx: I can browse the changes in my webbrowser, I can push using ssh and I can pull using http.

The problem I have is that I am unable to push changes to the published repository, I get the following error message: "http://myserver:83/ does not appear to be an hg repository!

The hgweb.cgi file has been renamed index.cgi and is living inside /var/www/mercurial. nginx redirects incoming cgi requests to a fastcgi process and executes /var/www/mercurial/index.cgi without any problem. It has ownership thomas:www-data and chmod 775.

nginx uses www-data:www-data

The published/central repository lives at: /var/hg/repo1, has ownership thomas:www-data and chmod 775

My personal repository is located at /var/hg/repo3, has ownership thomas:thomas and chmod 755

When I want to push to that repository using http, I issue the following command: hg push http://myserver:83

And in response I get:

-------------------- pushing to http://ubuntu:83 searching for changes abort: 'http://ubuntu:83/' does not appear to be an hg repository!

-------------------

However, if my personal repository is synced with the central repository, if I try to push (even tough I know there are no changes) I get:

------------------- pushing to http://ubuntu:83 searching for changes no changes found

--------------------

Where could the problem come from? I tried enabling http authentication in nginx, so I type my username/password, but afterwards I still get the same error.

On Jan 29, 2008 12:49 PM, Marcin Kasperski <Marc@public.gmane.org> wrote:

I would go for mod_wsgi. (...)

One more option is to reverse-proxy hg serve....