discovery: pass pushop to _nowarnheads
authorRyan McElroy <rmcelroy@fb.com>
Tue, 10 Nov 2015 11:16:25 -0800
changeset 26936 d47ac02fcefa
parent 26935 c4a7bbc78c74
child 26937 dda0aa3baedd
discovery: pass pushop to _nowarnheads Previously, we passed only enough information to _nowarnheads to perform the old calculation. However, extensions may want to use more information in this calculation. Now that pushop is extensible, extensions will often want access to the additional fields they have added to the pushop, so pass that through. Specifically, the remotenames extension will use this information to allow pushing new heads that are bookmarked without requiring --force.
mercurial/discovery.py
--- a/mercurial/discovery.py	Tue Nov 10 11:13:21 2015 -0800
+++ b/mercurial/discovery.py	Tue Nov 10 11:16:25 2015 -0800
@@ -238,8 +238,14 @@
         unsynced = set()
     return {None: (oldheads, newheads, unsynced)}
 
-def _nowarnheads(repo, remote, newbookmarks):
+def _nowarnheads(pushop):
     # Compute newly pushed bookmarks. We don't warn about bookmarked heads.
+
+    # internal config: bookmarks.pushing
+    newbookmarks = pushop.ui.configlist('bookmarks', 'pushing')
+
+    repo = pushop.repo.unfiltered()
+    remote = pushop.remote
     localbookmarks = repo._bookmarks
     remotebookmarks = remote.listkeys('bookmarks')
     bookmarkedheads = set()
@@ -268,9 +274,6 @@
     newbranch = pushop.newbranch
     inc = bool(pushop.incoming)
 
-    # internal config: bookmarks.pushing
-    newbookmarks = pushop.ui.configlist('bookmarks', 'pushing')
-
     # Check for each named branch if we're creating new remote heads.
     # To be a remote head after push, node must be either:
     # - unknown locally
@@ -296,7 +299,7 @@
                                 " new remote branches"))
 
     # 2. Find heads that we need not warn about
-    nowarnheads = _nowarnheads(repo, remote, newbookmarks)
+    nowarnheads = _nowarnheads(pushop)
 
     # 3. Check for new heads.
     # If there are more heads after the push than before, a suitable