Mercurial > public > mercurial-scm > hg-stable
diff mercurial/changegroup.py @ 23890:7817059917d0
pullbundle2: extract addchangegroup result combining into its own function
This will also be used for 'hg unbundle'
author | Eric Sumner <ericsumner@fb.com> |
---|---|
date | Fri, 16 Jan 2015 12:53:45 -0800 |
parents | 4ab66de46a96 |
children | cda18ded2c48 |
line wrap: on
line diff
--- a/mercurial/changegroup.py Fri Jan 16 15:31:45 2015 -0500 +++ b/mercurial/changegroup.py Fri Jan 16 12:53:45 2015 -0800 @@ -42,6 +42,25 @@ """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 + class nocompress(object): def compress(self, x): return x