2244 except (ValueError, TypeError): |
2244 except (ValueError, TypeError): |
2245 raise error.ResponseError( |
2245 raise error.ResponseError( |
2246 _('Unexpected response from remote server:'), l) |
2246 _('Unexpected response from remote server:'), l) |
2247 self.ui.status(_('%d files to transfer, %s of data\n') % |
2247 self.ui.status(_('%d files to transfer, %s of data\n') % |
2248 (total_files, util.bytecount(total_bytes))) |
2248 (total_files, util.bytecount(total_bytes))) |
|
2249 handled_bytes = 0 |
|
2250 self.ui.progress(_('clone'), 0, total=total_bytes) |
2249 start = time.time() |
2251 start = time.time() |
2250 for i in xrange(total_files): |
2252 for i in xrange(total_files): |
2251 # XXX doesn't support '\n' or '\r' in filenames |
2253 # XXX doesn't support '\n' or '\r' in filenames |
2252 l = fp.readline() |
2254 l = fp.readline() |
2253 try: |
2255 try: |
2260 self.ui.debug('adding %s (%s)\n' % |
2262 self.ui.debug('adding %s (%s)\n' % |
2261 (name, util.bytecount(size))) |
2263 (name, util.bytecount(size))) |
2262 # for backwards compat, name was partially encoded |
2264 # for backwards compat, name was partially encoded |
2263 ofp = self.sopener(store.decodedir(name), 'w') |
2265 ofp = self.sopener(store.decodedir(name), 'w') |
2264 for chunk in util.filechunkiter(fp, limit=size): |
2266 for chunk in util.filechunkiter(fp, limit=size): |
|
2267 handled_bytes += len(chunk) |
|
2268 self.ui.progress(_('clone'), handled_bytes, |
|
2269 total=total_bytes) |
2265 ofp.write(chunk) |
2270 ofp.write(chunk) |
2266 ofp.close() |
2271 ofp.close() |
2267 elapsed = time.time() - start |
2272 elapsed = time.time() - start |
2268 if elapsed <= 0: |
2273 if elapsed <= 0: |
2269 elapsed = 0.001 |
2274 elapsed = 0.001 |
|
2275 self.ui.progress(_('clone'), None) |
2270 self.ui.status(_('transferred %s in %.1f seconds (%s/sec)\n') % |
2276 self.ui.status(_('transferred %s in %.1f seconds (%s/sec)\n') % |
2271 (util.bytecount(total_bytes), elapsed, |
2277 (util.bytecount(total_bytes), elapsed, |
2272 util.bytecount(total_bytes / elapsed))) |
2278 util.bytecount(total_bytes / elapsed))) |
2273 |
2279 |
2274 # new requirements = old non-format requirements + |
2280 # new requirements = old non-format requirements + |