clone: explicitly detect the need to fetch a peer
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sat, 03 Dec 2022 03:45:39 +0100
changeset 49747 8a38cd76588f
parent 49746 2a5feacc4085
child 49748 78af51ba73c5
clone: explicitly detect the need to fetch a peer Instead of having `peer()` method on all `peer()` for this usecase, we could simply handle it explicitly.
mercurial/hg.py
--- a/mercurial/hg.py	Fri Dec 02 19:15:04 2022 +0100
+++ b/mercurial/hg.py	Sat Dec 03 03:45:39 2022 +0100
@@ -717,6 +717,11 @@
             branches = (src_path.branch, branch or [])
             source = src_path.loc
     else:
+        if util.safehasattr(source, 'peer'):
+            srcpeer = source.peer()  # in case we were called with a localrepo
+        else:
+            srcpeer = source
+        branches = (None, branch or [])
         # XXX path: simply use the peer `path` object when this become available
         srcpeer = source.peer()  # in case we were called with a localrepo
         branches = (None, branch or [])