2113 chainspans = [] |
2115 chainspans = [] |
2114 |
2116 |
2115 # data about each revision |
2117 # data about each revision |
2116 datasize = [None, 0, 0] |
2118 datasize = [None, 0, 0] |
2117 fullsize = [None, 0, 0] |
2119 fullsize = [None, 0, 0] |
|
2120 semisize = [None, 0, 0] |
2118 deltasize = [None, 0, 0] |
2121 deltasize = [None, 0, 0] |
2119 chunktypecounts = {} |
2122 chunktypecounts = {} |
2120 chunktypesizes = {} |
2123 chunktypesizes = {} |
2121 |
2124 |
2122 def addsize(size, l): |
2125 def addsize(size, l): |
2152 chainbases.append(baseaddr) |
2155 chainbases.append(baseaddr) |
2153 chainspans.append((revaddr - baseaddr) + size) |
2156 chainspans.append((revaddr - baseaddr) + size) |
2154 if size == 0: |
2157 if size == 0: |
2155 numempty += 1 |
2158 numempty += 1 |
2156 numemptydelta += 1 |
2159 numemptydelta += 1 |
|
2160 elif r.issnapshot(rev): |
|
2161 addsize(size, semisize) |
|
2162 numsemi += 1 |
2157 else: |
2163 else: |
2158 addsize(size, deltasize) |
2164 addsize(size, deltasize) |
2159 if delta == rev - 1: |
2165 if delta == rev - 1: |
2160 numprev += 1 |
2166 numprev += 1 |
2161 if delta == p1: |
2167 if delta == p1: |
2185 |
2191 |
2186 chunktypecounts[chunktype] += 1 |
2192 chunktypecounts[chunktype] += 1 |
2187 chunktypesizes[chunktype] += size |
2193 chunktypesizes[chunktype] += size |
2188 |
2194 |
2189 # Adjust size min value for empty cases |
2195 # Adjust size min value for empty cases |
2190 for size in (datasize, fullsize, deltasize): |
2196 for size in (datasize, fullsize, semisize, deltasize): |
2191 if size[0] is None: |
2197 if size[0] is None: |
2192 size[0] = 0 |
2198 size[0] = 0 |
2193 |
2199 |
2194 numdeltas = numrevs - numfull - numempty |
2200 numdeltas = numrevs - numfull - numempty - numsemi |
2195 numoprev = numprev - nump1prev - nump2prev |
2201 numoprev = numprev - nump1prev - nump2prev |
2196 totalrawsize = datasize[2] |
2202 totalrawsize = datasize[2] |
2197 datasize[2] /= numrevs |
2203 datasize[2] /= numrevs |
2198 fulltotal = fullsize[2] |
2204 fulltotal = fullsize[2] |
2199 fullsize[2] /= numfull |
2205 fullsize[2] /= numfull |
|
2206 semitotal = semisize[2] |
|
2207 if 0 < numsemi: |
|
2208 semisize[2] /= numsemi |
2200 deltatotal = deltasize[2] |
2209 deltatotal = deltasize[2] |
2201 if numdeltas > 0: |
2210 if numdeltas > 0: |
2202 deltasize[2] /= numdeltas |
2211 deltasize[2] /= numdeltas |
2203 totalsize = fulltotal + deltatotal |
2212 totalsize = fulltotal + semitotal + deltatotal |
2204 avgchainlen = sum(chainlengths) / numrevs |
2213 avgchainlen = sum(chainlengths) / numrevs |
2205 maxchainlen = max(chainlengths) |
2214 maxchainlen = max(chainlengths) |
2206 maxchainspan = max(chainspans) |
2215 maxchainspan = max(chainspans) |
2207 compratio = 1 |
2216 compratio = 1 |
2208 if totalsize: |
2217 if totalsize: |
2236 ui.write((' text : ') |
2245 ui.write((' text : ') |
2237 + fmt % pcfmt(numemptytext, numemptytext + numemptydelta)) |
2246 + fmt % pcfmt(numemptytext, numemptytext + numemptydelta)) |
2238 ui.write((' delta : ') |
2247 ui.write((' delta : ') |
2239 + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta)) |
2248 + fmt % pcfmt(numemptydelta, numemptytext + numemptydelta)) |
2240 ui.write((' full : ') + fmt % pcfmt(numfull, numrevs)) |
2249 ui.write((' full : ') + fmt % pcfmt(numfull, numrevs)) |
|
2250 ui.write((' inter : ') + fmt % pcfmt(numsemi, numrevs)) |
2241 ui.write((' deltas : ') + fmt % pcfmt(numdeltas, numrevs)) |
2251 ui.write((' deltas : ') + fmt % pcfmt(numdeltas, numrevs)) |
2242 ui.write(('revision size : ') + fmt2 % totalsize) |
2252 ui.write(('revision size : ') + fmt2 % totalsize) |
2243 ui.write((' full : ') + fmt % pcfmt(fulltotal, totalsize)) |
2253 ui.write((' full : ') + fmt % pcfmt(fulltotal, totalsize)) |
|
2254 ui.write((' inter : ') + fmt % pcfmt(semitotal, totalsize)) |
2244 ui.write((' deltas : ') + fmt % pcfmt(deltatotal, totalsize)) |
2255 ui.write((' deltas : ') + fmt % pcfmt(deltatotal, totalsize)) |
2245 |
2256 |
2246 def fmtchunktype(chunktype): |
2257 def fmtchunktype(chunktype): |
2247 if chunktype == 'empty': |
2258 if chunktype == 'empty': |
2248 return ' %s : ' % chunktype |
2259 return ' %s : ' % chunktype |