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.
--- 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