Mercurial > hg-stable
changeset 33048:52c7060b707a
bundle: move combineresults() from changegroup to bundle2
The results only need to be combined if they come from a bundle2. More
importantly, we'll change its argument to a bundleoperation soon, and
then it definitely will no longer belong in changegroup.py.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 22 Jun 2017 13:58:20 -0700 |
parents | 6e3a6774d998 |
children | d765ad56081f |
files | mercurial/bundle2.py mercurial/changegroup.py mercurial/commands.py mercurial/exchange.py |
diffstat | 4 files changed, 21 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundle2.py Wed Jun 21 14:42:04 2017 -0700 +++ b/mercurial/bundle2.py Thu Jun 22 13:58:20 2017 -0700 @@ -1478,6 +1478,25 @@ # in case of sshrepo because we don't know the end of the stream return changegroup.writechunks(ui, chunkiter, filename, vfs=vfs) +def combinechangegroupresults(results): + """logic to combine 0 or more addchangegroup results into one""" + changedheads = 0 + result = 1 + for ret in results: + # If any changegroup result is 0, return 0 + if ret == 0: + result = 0 + break + if ret < -1: + changedheads += ret + 1 + elif ret > 1: + changedheads += ret - 1 + if changedheads > 0: + result = 1 + changedheads + elif changedheads < 0: + result = -1 + changedheads + return result + @parthandler('changegroup', ('version', 'nbchanges', 'treemanifest')) def handlechangegroup(op, inpart): """apply a changegroup part on the repo
--- a/mercurial/changegroup.py Wed Jun 21 14:42:04 2017 -0700 +++ b/mercurial/changegroup.py Thu Jun 22 13:58:20 2017 -0700 @@ -60,25 +60,6 @@ """return a changegroup chunk header (string) for a zero-length chunk""" return struct.pack(">l", 0) -def combineresults(results): - """logic to combine 0 or more addchangegroup results into one""" - changedheads = 0 - result = 1 - for ret in results: - # If any changegroup result is 0, return 0 - if ret == 0: - result = 0 - break - if ret < -1: - changedheads += ret + 1 - elif ret > 1: - changedheads += ret - 1 - if changedheads > 0: - result = 1 + changedheads - elif changedheads < 0: - result = -1 + changedheads - return result - def writechunks(ui, chunks, filename, vfs=None): """Write chunks to a file and return its filename.
--- a/mercurial/commands.py Wed Jun 21 14:42:04 2017 -0700 +++ b/mercurial/commands.py Thu Jun 22 13:58:20 2017 -0700 @@ -5216,7 +5216,7 @@ "information")) changes = [r.get('return', 0) for r in op.records['changegroup']] - modheads = changegroup.combineresults(changes) + modheads = bundle2.combinechangegroupresults(changes) else: txnname = 'unbundle\n%s' % util.hidepassword(url) with repo.transaction(txnname) as tr:
--- a/mercurial/exchange.py Wed Jun 21 14:42:04 2017 -0700 +++ b/mercurial/exchange.py Thu Jun 22 13:58:20 2017 -0700 @@ -1398,7 +1398,7 @@ if pullop.fetch: results = [cg['return'] for cg in op.records['changegroup']] - pullop.cgresult = changegroup.combineresults(results) + pullop.cgresult = bundle2.combinechangegroupresults(results) # processing phases change for namespace, value in op.records['listkeys']: