Mercurial > hg
changeset 25679:540cd0ddac49 stable 3.4.2
transplant: only pull the transplanted revision (issue4692)
For some reason, transplant was pulling all remote revisions when transplanting
from a remote repository (unless --branch was
specified).
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 29 Jun 2015 19:09:42 -0700 |
parents | 0c201666fdc6 |
children | 606f09787af9 ce3d4b858420 |
files | hgext/transplant.py tests/test-transplant.t |
diffstat | 2 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/transplant.py Mon Jun 29 19:18:51 2015 -0700 +++ b/hgext/transplant.py Mon Jun 29 19:09:42 2015 -0700 @@ -625,8 +625,14 @@ if sourcerepo: peer = hg.peer(repo, opts, ui.expandpath(sourcerepo)) heads = map(peer.lookup, opts.get('branch', ())) + target = set(heads) + for r in revs: + try: + target.add(peer.lookup(r)) + except error.RepoError: + pass source, csets, cleanupfn = bundlerepo.getremotechanges(ui, repo, peer, - onlyheads=heads, force=True) + onlyheads=sorted(target), force=True) else: source = repo heads = map(source.lookup, opts.get('branch', ()))
--- a/tests/test-transplant.t Mon Jun 29 19:18:51 2015 -0700 +++ b/tests/test-transplant.t Mon Jun 29 19:09:42 2015 -0700 @@ -313,13 +313,11 @@ 0 r1 remote transplant without pull -(I'm pretty sure this test is actually pulling, -It was using "2" and "4" (as the previous transplant used to) which referenced +(It was using "2" and "4" (as the previous transplant used to) which referenced revision different from one run to another) $ hg pull -q http://localhost:$HGPORT/ $ hg transplant -s http://localhost:$HGPORT/ 8d9279348abb 722f4667af76 - searching for changes skipping already applied revision 2:8d9279348abb applying 722f4667af76 722f4667af76 transplanted to 76e321915884