changeset 28876:79b8f052ee51

localrepo: refactor prepushoutgoinghook to take a pushop prepushoutgoinghook was introduced in 6c383c871fdb and largefiles is the only in-tree use of it. Refactor it to be more useful for other use cases in largefiles.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 13 Apr 2016 01:09:11 +0200
parents 2e9f5453ab5a
children 8079639b20dc
files hgext/largefiles/reposetup.py mercurial/exchange.py mercurial/localrepo.py
diffstat 3 files changed, 9 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/largefiles/reposetup.py	Tue Mar 29 00:08:25 2016 +0900
+++ b/hgext/largefiles/reposetup.py	Wed Apr 13 01:09:11 2016 +0200
@@ -352,12 +352,13 @@
     # is used to write status out.
     repo._lfstatuswriters = [ui.status]
 
-    def prepushoutgoinghook(local, remote, outgoing):
-        if outgoing.missing:
+    def prepushoutgoinghook(pushop):
+        if pushop.outgoing.missing:
             toupload = set()
             addfunc = lambda fn, lfhash: toupload.add(lfhash)
-            lfutil.getlfilestoupload(local, outgoing.missing, addfunc)
-            lfcommands.uploadlfiles(ui, local, remote, toupload)
+            lfutil.getlfilestoupload(pushop.repo, pushop.outgoing.missing,
+                                     addfunc)
+            lfcommands.uploadlfiles(ui, pushop.repo, pushop.remote, toupload)
     repo.prepushoutgoinghooks.add("largefiles", prepushoutgoinghook)
 
     def checkrequireslfiles(ui, repo, **kwargs):
--- a/mercurial/exchange.py	Tue Mar 29 00:08:25 2016 +0900
+++ b/mercurial/exchange.py	Wed Apr 13 01:09:11 2016 +0200
@@ -694,9 +694,7 @@
     # Send known heads to the server for race detection.
     if not _pushcheckoutgoing(pushop):
         return
-    pushop.repo.prepushoutgoinghooks(pushop.repo,
-                                     pushop.remote,
-                                     pushop.outgoing)
+    pushop.repo.prepushoutgoinghooks(pushop)
 
     _pushb2ctxcheckheads(pushop, bundler)
 
@@ -884,9 +882,7 @@
     pushop.stepsdone.add('changesets')
     if not _pushcheckoutgoing(pushop):
         return
-    pushop.repo.prepushoutgoinghooks(pushop.repo,
-                                     pushop.remote,
-                                     pushop.outgoing)
+    pushop.repo.prepushoutgoinghooks(pushop)
     outgoing = pushop.outgoing
     unbundle = pushop.remote.capable('unbundle')
     # TODO: get bundlecaps from remote
--- a/mercurial/localrepo.py	Tue Mar 29 00:08:25 2016 +0900
+++ b/mercurial/localrepo.py	Wed Apr 13 01:09:11 2016 +0200
@@ -1887,8 +1887,8 @@
 
     @unfilteredpropertycache
     def prepushoutgoinghooks(self):
-        """Return util.hooks consists of "(repo, remote, outgoing)"
-        functions, which are called before pushing changesets.
+        """Return util.hooks consists of a pushop with repo, remote, outgoing
+        methods, which are called before pushing changesets.
         """
         return util.hooks()