Default Timeout for Push Operation
Benoit Boissinot
benoit.boissinot at ens-lyon.org
Wed Feb 24 12:51:33 CST 2010
On Wed, Feb 24, 2010 at 05:58:18PM +0000, Matt Hawley wrote:
> Hi Benoit,
>
> I was able to successfully push changes under Linux, so it does look
> to be an Mercurial client + OS problem. When I was pushing under
> Windows, I was watching the network traffic, and it stopped uploading
> about 1/3 of the 150MB changes prior to prompting for authentication.
> Please let me know what else you would like to track this bug down.
Ok so it's probably not an IIS issue.
Next we should find out if it comes from whatever customization hg does
to the python http library.
Let's try the following:
- on the client create the same data as hg would send through http:
hg bundle -t gzip foo.hg
this will create our bundle file in a similar format as what is sent
to the server
- on the server, find out the hex hashes for the heads (we need to send
them in the client query):
hg heads --templates='{node}\n'
this will give one hash per line, we'll use it in the url below
- then using python, on the client, do the following:
import urllib2, urllib
# read the bundle
data = open('foo.hg').read()
# replace <hex hash 1> by the hex you've found but running hg heads on
# the server, etc.
args = {'cmd': 'unbundle', 'heads': '<hex hash1> <hex hash2>'}
url = 'https://server/path/to/repo?' + urllib.urlencode(args)
# send the request
url = urllib2.urlopen(url, data, headers={'Content-Type': 'application/mercurial-0.1'})
If this works, then the problem is in our https handling, otherwise this
is likely an OS or python library issue.
regards,
Benoit
--
:wq
More information about the Mercurial
mailing list