# HG changeset patch # User Siddharth Agarwal # Date 1418421996 28800 # Node ID deabbe7ed54b3a824f14af644b44d9b69c2602f9 # Parent 68c4347995590ed16c7eb624fbc95dd5ed7e96b4 localrepo.clone: add a way to override server preferuncompressed Without this patch, if the server sets preferuncompressed, there's no way for clients to override that and force a non-streaming clone. With this patch, we extend the meaning of --pull to also override preferuncompressed and force a non-streaming clone. diff -r 68c434799559 -r deabbe7ed54b mercurial/localrepo.py --- a/mercurial/localrepo.py Fri Dec 12 14:02:56 2014 -0800 +++ b/mercurial/localrepo.py Fri Dec 12 14:06:36 2014 -0800 @@ -1726,7 +1726,7 @@ finally: lock.release() - def clone(self, remote, heads=[], stream=False): + def clone(self, remote, heads=[], stream=None): '''clone remote repository. keyword arguments: @@ -1741,7 +1741,7 @@ # and format flags on "stream" capability, and use # uncompressed only if compatible. - if not stream: + if stream is None: # if the server explicitly prefers to stream (for fast LANs) stream = remote.capable('stream-preferred') diff -r 68c434799559 -r deabbe7ed54b tests/test-http.t --- a/tests/test-http.t Fri Dec 12 14:02:56 2014 -0800 +++ b/tests/test-http.t Fri Dec 12 14:06:36 2014 -0800 @@ -201,6 +201,15 @@ no changes found updating to branch default 5 files updated, 0 files merged, 0 files removed, 0 files unresolved +--pull should override server's preferuncompressed + $ hg clone --pull http://user:pass@localhost:$HGPORT2/ dest-pull 2>&1 + requesting all changes + adding changesets + adding manifests + adding file changes + added 2 changesets with 5 changes to 5 files + updating to branch default + 5 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg id http://user2@localhost:$HGPORT2/ abort: http authorization required for http://localhost:$HGPORT2/ @@ -259,6 +268,12 @@ "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D5fed3813f7f5e1824344fdc9cf8f63bb662c292d "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases "GET /?cmd=capabilities HTTP/1.1" 200 - + "GET /?cmd=listkeys HTTP/1.1" 401 - x-hgarg-1:namespace=bookmarks + "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks + "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D + "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:common=0000000000000000000000000000000000000000&heads=5fed3813f7f5e1824344fdc9cf8f63bb662c292d + "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases + "GET /?cmd=capabilities HTTP/1.1" 200 - "GET /?cmd=lookup HTTP/1.1" 200 - x-hgarg-1:key=tip "GET /?cmd=listkeys HTTP/1.1" 401 - x-hgarg-1:namespace=namespaces "GET /?cmd=capabilities HTTP/1.1" 200 -