~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/shelf_ui.py

Merge bzr.dev to resolve news conflict

Show diffs side-by-side

added added

removed removed

Lines of Context:
154
154
 
155
155
    @classmethod
156
156
    def from_args(klass, diff_writer, revision=None, all=False, file_list=None,
157
 
                  message=None, directory='.', destroy=False):
 
157
                  message=None, directory=None, destroy=False):
158
158
        """Create a shelver from commandline arguments.
159
159
 
160
160
        The returned shelver wil have a work_tree that is locked and should
168
168
        :param destroy: Change the working tree without storing the shelved
169
169
            changes.
170
170
        """
 
171
        if directory is None:
 
172
            directory = u'.'
 
173
        elif file_list:
 
174
            file_list = [osutils.pathjoin(directory, f) for f in file_list]
171
175
        tree, path = workingtree.WorkingTree.open_containing(directory)
172
176
        # Ensure that tree is locked for the lifetime of target_tree, as
173
177
        # target tree may be reading from the same dirstate.
493
497
        tt = tree_merger.make_preview_transform()
494
498
        new_tree = tt.get_preview_tree()
495
499
        if self.write_diff_to is None:
496
 
            self.write_diff_to = ui.ui_factory.make_output_stream()
 
500
            self.write_diff_to = ui.ui_factory.make_output_stream(encoding_type='exact')
497
501
        path_encoding = osutils.get_diff_header_encoding()
498
502
        diff.show_diff_trees(merger.this_tree, new_tree, self.write_diff_to,
499
503
            path_encoding=path_encoding)