pull: with -u and -r, update to the first revision given
This makes pull consistent with clone. The actual change is in
mercurial.hg.parseurl, changing its checkout result, which is only
used for pull.
--- a/mercurial/hg.py Sun Feb 07 10:01:55 2010 +0100
+++ b/mercurial/hg.py Sat Feb 06 20:24:51 2010 +0100
@@ -22,10 +22,10 @@
'''parse url#branch, returning url, branch + revs'''
if '#' not in url:
- return url, (revs or None), revs and revs[-1] or None
+ return url, (revs or None), revs and revs[0] or None
url, branch = url.split('#', 1)
- checkout = revs and revs[-1] or branch
+ checkout = revs and revs[0] or branch
return url, (revs or []) + [branch], checkout
schemes = {
@@ -188,7 +188,7 @@
else:
src_repo = source
origsource = source = src_repo.url()
- checkout = rev and rev[-1] or None
+ checkout = rev and rev[0] or None
if dest is None:
dest = defaultdest(source)
--- a/tests/test-pull-r Sun Feb 07 10:01:55 2010 +0100
+++ b/tests/test-pull-r Sat Feb 06 20:24:51 2010 +0100
@@ -17,6 +17,11 @@
echo '% pull a missing revision'
hg pull -qr missing ../repo
+echo '% pull multiple revisions with update'
+hg pull -qu -r 0 -r 1 ../repo
+hg -q parents
+hg rollback
+
echo '% pull -r 0'
hg pull -qr 0 ../repo
hg log
--- a/tests/test-pull-r.out Sun Feb 07 10:01:55 2010 +0100
+++ b/tests/test-pull-r.out Sat Feb 06 20:24:51 2010 +0100
@@ -17,6 +17,9 @@
% pull a missing revision
abort: unknown revision 'missing'!
+% pull multiple revisions with update
+0:bbd179dfa0a7
+rolling back last transaction
% pull -r 0
changeset: 0:bbd179dfa0a7
tag: tip