changeset 5235:8ede77c2d008

pull -r: pass the revisions as the heads argument of findincoming This can make a hg pull -r faster if the remote repo has many heads, and fixes an "abort: received changelog group is empty".
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Mon, 27 Aug 2007 01:44:35 -0300
parents 9d7052f17d77
children cbe6e263357b
files mercurial/localrepo.py tests/test-pull-r tests/test-pull-r.out
diffstat 3 files changed, 65 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1312,7 +1312,7 @@ class localrepository(repo.repository):
             mylock = True
 
         try:
-            fetch = self.findincoming(remote, force=force)
+            fetch = self.findincoming(remote, heads=heads, force=force)
             if fetch == [nullid]:
                 self.ui.status(_("requesting all changes\n"))
 
new file mode 100755
--- /dev/null
+++ b/tests/test-pull-r
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+hg init repo
+cd repo
+echo foo > foo
+hg ci -qAm 'add foo' -d '0 0'
+echo >> foo
+hg ci -m 'change foo' -d '0 0'
+hg up -qC 0
+echo bar > bar
+hg ci -qAm 'add bar' -d '0 0'
+hg log
+cd ..
+hg init copy
+cd copy
+
+echo '% pull -r 0'
+hg pull -qr 0 ../repo
+hg log
+
+echo '% pull -r 1'
+hg pull -qr 1 ../repo
+hg log
+
+# this used to abort: received changelog group is empty
+echo '% pull -r 1 again'
+hg pull -qr 1 ../repo
new file mode 100644
--- /dev/null
+++ b/tests/test-pull-r.out
@@ -0,0 +1,37 @@
+changeset:   2:effea6de0384
+tag:         tip
+parent:      0:bbd179dfa0a7
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     add bar
+
+changeset:   1:ed1b79f46b9a
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     change foo
+
+changeset:   0:bbd179dfa0a7
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     add foo
+
+% pull -r 0
+changeset:   0:bbd179dfa0a7
+tag:         tip
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     add foo
+
+% pull -r 1
+changeset:   1:ed1b79f46b9a
+tag:         tip
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     change foo
+
+changeset:   0:bbd179dfa0a7
+user:        test
+date:        Thu Jan 01 00:00:00 1970 +0000
+summary:     add foo
+
+% pull -r 1 again