/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Martin Pool
  • Date: 2007-09-24 05:18:37 UTC
  • mto: This revision was merged to the branch mainline in revision 2857.
  • Revision ID: mbp@sourcefrog.net-20070924051837-6qvnc9tca3y4xflp
Add revert --forget-merges

Show diffs side-by-side

added added

removed removed

Lines of Context:
3048
3048
 
3049
3049
    _see_also = ['cat', 'export']
3050
3050
    takes_options = [
3051
 
            'revision',
3052
 
            Option('no-backup', "Do not save backups of reverted files."),
3053
 
            ]
 
3051
        'revision',
 
3052
        Option('no-backup', "Do not save backups of reverted files."),
 
3053
        Option('forget-merges',
 
3054
               'Remove pending merge marker, without changing any files.'),
 
3055
        ]
3054
3056
    takes_args = ['file*']
3055
3057
 
3056
 
    def run(self, revision=None, no_backup=False, file_list=None):
3057
 
        if file_list is not None:
3058
 
            if len(file_list) == 0:
3059
 
                raise errors.BzrCommandError("No files specified")
3060
 
        
 
3058
    def run(self, revision=None, no_backup=False, file_list=None,
 
3059
            forget_merges=None):
3061
3060
        tree, file_list = tree_files(file_list)
 
3061
        if forget_merges:
 
3062
            tree.set_parent_ids(tree.get_parent_ids()[:1])
 
3063
        else:
 
3064
            self._revert_tree_to_revision(tree, revision, file_list, no_backup)
 
3065
 
 
3066
    @staticmethod
 
3067
    def _revert_tree_to_revision(tree, revision, file_list, no_backup):
3062
3068
        if revision is None:
3063
 
            # FIXME should be tree.last_revision
3064
3069
            rev_id = tree.last_revision()
3065
3070
        elif len(revision) != 1:
3066
3071
            raise errors.BzrCommandError('bzr revert --revision takes exactly 1 argument')
3068
3073
            rev_id = revision[0].in_history(tree.branch).rev_id
3069
3074
        pb = ui.ui_factory.nested_progress_bar()
3070
3075
        try:
3071
 
            tree.revert(file_list, 
 
3076
            tree.revert(file_list,
3072
3077
                        tree.branch.repository.revision_tree(rev_id),
3073
3078
                        not no_backup, pb, report_changes=True)
3074
3079
        finally: