##// END OF EJS Templates
pull: close peer repo on completion (issue2491) (issue2797)...
Piotr Klecha -
r20576:7f865a94 stable
parent child Browse files
Show More
@@ -4605,47 +4605,50 b' def pull(ui, repo, source="default", **o'
4605 4605 """
4606 4606 source, branches = hg.parseurl(ui.expandpath(source), opts.get('branch'))
4607 4607 other = hg.peer(repo, opts, source)
4608 ui.status(_('pulling from %s\n') % util.hidepassword(source))
4609 revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
4610
4611 remotebookmarks = other.listkeys('bookmarks')
4612
4613 if opts.get('bookmark'):
4614 if not revs:
4615 revs = []
4616 for b in opts['bookmark']:
4617 if b not in remotebookmarks:
4618 raise util.Abort(_('remote bookmark %s not found!') % b)
4619 revs.append(remotebookmarks[b])
4620
4621 if revs:
4608 try:
4609 ui.status(_('pulling from %s\n') % util.hidepassword(source))
4610 revs, checkout = hg.addbranchrevs(repo, other, branches,
4611 opts.get('rev'))
4612
4613 remotebookmarks = other.listkeys('bookmarks')
4614
4615 if opts.get('bookmark'):
4616 if not revs:
4617 revs = []
4618 for b in opts['bookmark']:
4619 if b not in remotebookmarks:
4620 raise util.Abort(_('remote bookmark %s not found!') % b)
4621 revs.append(remotebookmarks[b])
4622
4623 if revs:
4624 try:
4625 revs = [other.lookup(rev) for rev in revs]
4626 except error.CapabilityError:
4627 err = _("other repository doesn't support revision lookup, "
4628 "so a rev cannot be specified.")
4629 raise util.Abort(err)
4630
4631 modheads = repo.pull(other, heads=revs, force=opts.get('force'))
4632 bookmarks.updatefromremote(ui, repo, remotebookmarks, source)
4633 if checkout:
4634 checkout = str(repo.changelog.rev(other.lookup(checkout)))
4635 repo._subtoppath = source
4622 4636 try:
4623 revs = [other.lookup(rev) for rev in revs]
4624 except error.CapabilityError:
4625 err = _("other repository doesn't support revision lookup, "
4626 "so a rev cannot be specified.")
4627 raise util.Abort(err)
4628
4629 modheads = repo.pull(other, heads=revs, force=opts.get('force'))
4630 bookmarks.updatefromremote(ui, repo, remotebookmarks, source)
4631 if checkout:
4632 checkout = str(repo.changelog.rev(other.lookup(checkout)))
4633 repo._subtoppath = source
4634 try:
4635 ret = postincoming(ui, repo, modheads, opts.get('update'), checkout)
4636
4637 ret = postincoming(ui, repo, modheads, opts.get('update'), checkout)
4638
4639 finally:
4640 del repo._subtoppath
4641
4642 # update specified bookmarks
4643 if opts.get('bookmark'):
4644 marks = repo._bookmarks
4645 for b in opts['bookmark']:
4646 # explicit pull overrides local bookmark if any
4647 ui.status(_("importing bookmark %s\n") % b)
4648 marks[b] = repo[remotebookmarks[b]].node()
4649 marks.write()
4637 4650 finally:
4638 del repo._subtoppath
4639
4640 # update specified bookmarks
4641 if opts.get('bookmark'):
4642 marks = repo._bookmarks
4643 for b in opts['bookmark']:
4644 # explicit pull overrides local bookmark if any
4645 ui.status(_("importing bookmark %s\n") % b)
4646 marks[b] = repo[remotebookmarks[b]].node()
4647 marks.write()
4648
4651 other.close()
4649 4652 return ret
4650 4653
4651 4654 @command('^push',
@@ -84,6 +84,11 b' Pull full.hg into test (using --cwd)'
84 84 searching for changes
85 85 no changes found
86 86
87 Verify that there are no leaked temporary files after pull (issue2797)
88
89 $ ls test/.hg | grep .hg10un
90 [1]
91
87 92 Pull full.hg into empty (using --cwd)
88 93
89 94 $ hg --cwd empty pull ../full.hg
General Comments 0
You need to be logged in to leave comments. Login now