Mercurial > hg
diff mercurial/commands.py @ 22617:1625770c2ce1
push: use `exchange.push` in `commands.push`
To gain access to all results from the push, we need to have access to the
`pushoperation` object. We call `exchange.push` to do so.
It is impossible to just change the `localrepo.push` signature because the
change may be too subtle to be caught by external extension wrapping
`localrepo.push`.
This mean we'll have to kill `localrepo.push` because just using
`exchange.push` in `commands.py` would silently disable all wrapping around
`localrepo.push` by third-party extensions. So we'll remove it in a later
changeset to get such extensions to fail noisily.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 25 Sep 2014 01:39:39 -0700 |
parents | 1257cc6c1a2f |
children | 76a43e0db516 |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Sep 25 02:21:59 2014 -0700 +++ b/mercurial/commands.py Thu Sep 25 01:39:39 2014 -0700 @@ -5068,10 +5068,10 @@ return not result finally: del repo._subtoppath - result = repo.push(other, opts.get('force'), revs=revs, - newbranch=opts.get('new_branch')) - - result = not result + pushop = exchange.push(repo, other, opts.get('force'), revs=revs, + newbranch=opts.get('new_branch')) + + result = not pushop.cgresult if opts.get('bookmark'): bresult = bookmarks.pushtoremote(ui, repo, other, opts['bookmark'])