# HG changeset patch # User Matt Harbison # Date 1535215318 14400 # Node ID b26350d9d7b5557c89a17e7480b25b47ab4a646b # Parent ddfd80029306463d3fb445dc1e617bd94efbca93 lfs: use a context manager to control the progress bar lifetime diff -r ddfd80029306 -r b26350d9d7b5 hgext/lfs/blobstore.py --- a/hgext/lfs/blobstore.py Sat Aug 25 12:26:44 2018 -0400 +++ b/hgext/lfs/blobstore.py Sat Aug 25 12:41:58 2018 -0400 @@ -405,8 +405,7 @@ if len(objects) > 1: self.ui.note(_('lfs: need to transfer %d objects (%s)\n') % (len(objects), util.bytecount(total))) - progress = self.ui.makeprogress(topic, total=total) - progress.update(0) + def transfer(chunk): for obj in chunk: objsize = obj.get('size', 0) @@ -439,14 +438,15 @@ else: oids = transfer(sorted(objects, key=lambda o: o.get('oid'))) - processed = 0 - blobs = 0 - for _one, oid in oids: - processed += sizes[oid] - blobs += 1 - progress.update(processed) - self.ui.note(_('lfs: processed: %s\n') % oid) - progress.complete() + with self.ui.makeprogress(topic, total=total) as progress: + progress.update(0) + processed = 0 + blobs = 0 + for _one, oid in oids: + processed += sizes[oid] + blobs += 1 + progress.update(processed) + self.ui.note(_('lfs: processed: %s\n') % oid) if blobs > 0: if action == 'upload': diff -r ddfd80029306 -r b26350d9d7b5 hgext/lfs/wrapper.py --- a/hgext/lfs/wrapper.py Sat Aug 25 12:26:44 2018 -0400 +++ b/hgext/lfs/wrapper.py Sat Aug 25 12:41:58 2018 -0400 @@ -344,17 +344,14 @@ repo.ui.debug('lfs: computing set of blobs to upload\n') pointers = {} - progress = repo.ui.makeprogress(_('lfs search'), _('changesets'), len(revs)) - - try: + makeprogress = repo.ui.makeprogress + with makeprogress(_('lfs search'), _('changesets'), len(revs)) as progress: for r in revs: ctx = repo[r] for p in pointersfromctx(ctx).values(): pointers[p.oid()] = p progress.increment() return sorted(pointers.values()) - finally: - progress.complete() def pointerfromctx(ctx, f, removed=False): """return a pointer for the named file from the given changectx, or None if