changeset 48241:7d1e60244561

path: keep the path instance in the `pulloperation` This will allow more pull code to use the path options. Ideally we would modify the peer API to keep the path instance. However that is much more churn that I can deal with for my current goal: adjusting a user facing API for a new feature before we release it in the 6.0 changesets. So I am taking a shortcut that seems reasonable. Differential Revision: https://phab.mercurial-scm.org/D11674
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 15 Oct 2021 03:28:28 +0200
parents 607e9322fc89
children 4d2ab365699e
files hgext/convert/hg.py mercurial/bundlerepo.py mercurial/commands.py mercurial/exchange.py mercurial/hg.py
diffstat 5 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/convert/hg.py	Fri Oct 15 02:44:14 2021 +0200
+++ b/hgext/convert/hg.py	Fri Oct 15 03:28:28 2021 +0200
@@ -145,7 +145,7 @@
                     _(b'pulling from %s into %s\n') % (pbranch, branch)
                 )
                 exchange.pull(
-                    self.repo, prepo, [prepo.lookup(h) for h in heads]
+                    self.repo, prepo, heads=[prepo.lookup(h) for h in heads]
                 )
             self.before()
 
--- a/mercurial/bundlerepo.py	Fri Oct 15 02:44:14 2021 +0200
+++ b/mercurial/bundlerepo.py	Fri Oct 15 03:28:28 2021 +0200
@@ -699,7 +699,9 @@
                 },
             ).result()
 
-        pullop = exchange.pulloperation(bundlerepo, peer, heads=reponodes)
+        pullop = exchange.pulloperation(
+            bundlerepo, peer, path=None, heads=reponodes
+        )
         pullop.trmanager = bundletransactionmanager()
         exchange._pullapplyphases(pullop, remotephases)
 
--- a/mercurial/commands.py	Fri Oct 15 02:44:14 2021 +0200
+++ b/mercurial/commands.py	Fri Oct 15 03:28:28 2021 +0200
@@ -5454,6 +5454,7 @@
                 modheads = exchange.pull(
                     repo,
                     other,
+                    path=path,
                     heads=nodes,
                     force=opts.get(b'force'),
                     bookmarks=opts.get(b'bookmark', ()),
--- a/mercurial/exchange.py	Fri Oct 15 02:44:14 2021 +0200
+++ b/mercurial/exchange.py	Fri Oct 15 03:28:28 2021 +0200
@@ -1378,6 +1378,7 @@
         self,
         repo,
         remote,
+        path,
         heads=None,
         force=False,
         bookmarks=(),
@@ -1391,6 +1392,10 @@
         self.repo = repo
         # repo we pull from
         self.remote = remote
+        # path object used to build this remote
+        #
+        # Ideally, the remote peer would carry that directly.
+        self.remote_path = path
         # revision we try to pull (None is "all")
         self.heads = heads
         # bookmark pulled explicitly
@@ -1556,6 +1561,7 @@
 def pull(
     repo,
     remote,
+    path=None,
     heads=None,
     force=False,
     bookmarks=(),
@@ -1611,8 +1617,9 @@
     pullop = pulloperation(
         repo,
         remote,
-        heads,
-        force,
+        path=path,
+        heads=heads,
+        force=force,
         bookmarks=bookmarks,
         streamclonerequested=streamclonerequested,
         includepats=includepats,
--- a/mercurial/hg.py	Fri Oct 15 02:44:14 2021 +0200
+++ b/mercurial/hg.py	Fri Oct 15 03:28:28 2021 +0200
@@ -942,7 +942,7 @@
                     exchange.pull(
                         local,
                         srcpeer,
-                        revs,
+                        heads=revs,
                         streamclonerequested=stream,
                         includepats=storeincludepats,
                         excludepats=storeexcludepats,