subrepo: more isolation, only use ui for hg.peer when there is no repo
ui contains repo specific configuration, so do not use it when there is a repo.
But pass it to hg.peer when there is no repo. Then it only contains global
configuration.
--- a/mercurial/commands.py Sat Jul 28 23:28:36 2012 +0200
+++ b/mercurial/commands.py Thu Oct 04 19:46:43 2012 +0200
@@ -3538,7 +3538,7 @@
if source:
source, branches = hg.parseurl(ui.expandpath(source))
- peer = hg.peer(ui, opts, source)
+ peer = hg.peer(repo or ui, opts, source) # only pass ui when no repo
repo = peer.local()
revs, checkout = hg.addbranchrevs(repo, peer, branches, None)
--- a/mercurial/hg.py Sat Jul 28 23:28:36 2012 +0200
+++ b/mercurial/hg.py Thu Oct 04 19:46:43 2012 +0200
@@ -353,7 +353,8 @@
node=node.hex(node.nullid))
else:
try:
- destpeer = peer(ui, peeropts, dest, create=True)
+ destpeer = peer(srcrepo or ui, peeropts, dest, create=True)
+ # only pass ui when no srcrepo
except OSError, inst:
if inst.errno == errno.EEXIST:
dircleanup.close()