~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Patch Queue Manager
  • Date: 2011-12-01 12:18:55 UTC
  • mfrom: (6331.2.2 export-uncommitted)
  • Revision ID: pqm@pqm.ubuntu.com-20111201121855-olnxam3ku2tvu3a2
(jelmer) Add --uncommitted option to 'bzr export'. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
3148
3148
        Option('per-file-timestamps',
3149
3149
               help='Set modification time of files to that of the last '
3150
3150
                    'revision in which it was changed.'),
 
3151
        Option('uncommitted',
 
3152
               help='Export the working tree contents rather than that of the '
 
3153
                    'last revision.'),
3151
3154
        ]
3152
3155
    def run(self, dest, branch_or_subdir=None, revision=None, format=None,
3153
 
        root=None, filters=False, per_file_timestamps=False, directory=u'.'):
 
3156
        root=None, filters=False, per_file_timestamps=False, uncommitted=False,
 
3157
        directory=u'.'):
3154
3158
        from bzrlib.export import export
3155
3159
 
3156
3160
        if branch_or_subdir is None:
3157
 
            tree = WorkingTree.open_containing(directory)[0]
3158
 
            b = tree.branch
3159
 
            subdir = None
 
3161
            branch_or_subdir = directory
 
3162
 
 
3163
        (tree, b, subdir) = controldir.ControlDir.open_containing_tree_or_branch(
 
3164
            branch_or_subdir)
 
3165
        if tree is not None:
 
3166
            self.add_cleanup(tree.lock_read().unlock)
 
3167
 
 
3168
        if uncommitted:
 
3169
            if tree is None:
 
3170
                raise errors.BzrCommandError(
 
3171
                    gettext("--uncommitted requires a working tree"))
 
3172
            export_tree = tree
3160
3173
        else:
3161
 
            b, subdir = Branch.open_containing(branch_or_subdir)
3162
 
            tree = None
3163
 
 
3164
 
        rev_tree = _get_one_revision_tree('export', revision, branch=b, tree=tree)
 
3174
            export_tree = _get_one_revision_tree('export', revision, branch=b, tree=tree)
3165
3175
        try:
3166
 
            export(rev_tree, dest, format, root, subdir, filtered=filters,
 
3176
            export(export_tree, dest, format, root, subdir, filtered=filters,
3167
3177
                   per_file_timestamps=per_file_timestamps)
3168
3178
        except errors.NoSuchExportFormat, e:
3169
 
            raise errors.BzrCommandError(gettext('Unsupported export format: %s') % e.format)
 
3179
            raise errors.BzrCommandError(
 
3180
                gettext('Unsupported export format: %s') % e.format)
3170
3181
 
3171
3182
 
3172
3183
class cmd_cat(Command):