subrepo: more isolation, only use ui for hg.peer when there is no repo stable
authorSimon Heimberg <simohe@besonet.ch>
Thu, 04 Oct 2012 19:46:43 +0200
branchstable
changeset 17875 92ba3cd55be6
parent 17874 2ba70eec1cf0
child 17876 f4ee2e959696
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.
mercurial/commands.py
mercurial/hg.py
--- 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()