[PATCH 1 of 3] pull: only list remote bookmarks if -B is used to populate pulled heads
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Fri May 29 22:25:13 UTC 2015
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1432846503 25200
# Thu May 28 13:55:03 2015 -0700
# Node ID 8b25f0ff5c7236148eddbf4b17b37e583d495865
# Parent 3bd73e02b02d8d06e48cff0bc931963639bf013c
pull: only list remote bookmarks if -B is used to populate pulled heads
Listing remote bookmarks result in network traffic and latency. This should be
avoided when possible.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -5117,15 +5117,15 @@ def pull(ui, repo, source="default", **o
other = hg.peer(repo, opts, source)
try:
revs, checkout = hg.addbranchrevs(repo, other, branches,
opts.get('rev'))
- remotebookmarks = other.listkeys('bookmarks')
if opts.get('bookmark'):
if not revs:
revs = []
+ remotebookmarks = other.listkeys('bookmarks')
for b in opts['bookmark']:
if b not in remotebookmarks:
raise util.Abort(_('remote bookmark %s not found!') % b)
revs.append(remotebookmarks[b])
diff --git a/tests/test-ssh.t b/tests/test-ssh.t
--- a/tests/test-ssh.t
+++ b/tests/test-ssh.t
@@ -456,13 +456,10 @@ debug output
remote: capabilities: lookup changegroupsubset branchmap pushkey known getbundle unbundlehash batch stream bundle2=HG20%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Alistkeys%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
remote: 1
preparing listkeys for "bookmarks"
sending listkeys command
received listkey for "bookmarks": 45 bytes
- preparing listkeys for "bookmarks"
- sending listkeys command
- received listkey for "bookmarks": 45 bytes
query 1; heads
sending batch command
searching for changes
all remote heads known locally
no changes found
diff --git a/tests/test-treediscovery.t b/tests/test-treediscovery.t
--- a/tests/test-treediscovery.t
+++ b/tests/test-treediscovery.t
@@ -514,11 +514,10 @@ Both have new stuff in existing named br
"GET /?cmd=heads HTTP/1.1" 200 -
"GET /?cmd=branches HTTP/1.1" 200 - x-hgarg-1:nodes=d8f638ac69e9ae8dea4f09f11d696546a912d961
"GET /?cmd=between HTTP/1.1" 200 - x-hgarg-1:pairs=d8f638ac69e9ae8dea4f09f11d696546a912d961-d57206cc072a18317c1e381fb60aa31bd3401785
"GET /?cmd=capabilities HTTP/1.1" 200 -
"GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
- "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
"GET /?cmd=heads HTTP/1.1" 200 -
"GET /?cmd=branches HTTP/1.1" 200 - x-hgarg-1:nodes=d8f638ac69e9ae8dea4f09f11d696546a912d961
"GET /?cmd=between HTTP/1.1" 200 - x-hgarg-1:pairs=d8f638ac69e9ae8dea4f09f11d696546a912d961-d57206cc072a18317c1e381fb60aa31bd3401785
"GET /?cmd=changegroupsubset HTTP/1.1" 200 - x-hgarg-1:bases=d8f638ac69e9ae8dea4f09f11d696546a912d961&heads=d8f638ac69e9ae8dea4f09f11d696546a912d961
"GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
More information about the Mercurial-devel
mailing list