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.
--- 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 [])