~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/shelf_ui.py

  • Committer: John Arbash Meinel
  • Date: 2010-01-12 22:51:31 UTC
  • mto: This revision was merged to the branch mainline in revision 4955.
  • Revision ID: john@arbash-meinel.com-20100112225131-he8h411p6aeeb947
Delay grabbing an output stream until we actually go to show a diff.

This makes the test suite happy, but it also seems to be reasonable.
If we aren't going to write anything, we don't need to hold an
output stream open.

Show diffs side-by-side

added added

removed removed

Lines of Context:
471
471
                if unshelver.message is not None:
472
472
                    trace.note('Message: %s' % unshelver.message)
473
473
                change_reporter = delta._ChangeReporter()
474
 
                merger = unshelver.make_merger(None)
475
 
                merger.change_reporter = change_reporter
476
 
                if self.apply_changes:
477
 
                    merger.do_merge()
478
 
                elif self.show_diff:
479
 
                    self.write_diff(merger)
480
 
                else:
481
 
                    self.show_changes(merger)
 
474
                task = ui.ui_factory.nested_progress_bar()
 
475
                try:
 
476
                    merger = unshelver.make_merger(task)
 
477
                    merger.change_reporter = change_reporter
 
478
                    if self.apply_changes:
 
479
                        merger.do_merge()
 
480
                    elif self.show_diff:
 
481
                        self.write_diff(merger)
 
482
                    else:
 
483
                        self.show_changes(merger)
 
484
                finally:
 
485
                    task.finished()
482
486
            if self.delete_shelf:
483
487
                self.manager.delete_shelf(self.shelf_id)
484
488
                trace.note('Deleted changes with id "%d".' % self.shelf_id)