# HG changeset patch # User Mads Kiilerich # Date 2016-04-12 23:09:11 # Node ID 79b8f052ee512a523084c7e0699a493bd93e23ec # Parent 2e9f5453ab5afb0696bff50ffff32139b4a3e97f 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. diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py --- a/hgext/largefiles/reposetup.py +++ b/hgext/largefiles/reposetup.py @@ -352,12 +352,13 @@ def reposetup(ui, repo): # 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): diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -694,9 +694,7 @@ def _pushb2ctx(pushop, bundler): # 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 @@ def _pushchangeset(pushop): 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 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1887,8 +1887,8 @@ class localrepository(object): @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()