~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to command_classes.py

  • Committer: Aaron Bentley
  • Date: 2009-03-11 01:20:30 UTC
  • Revision ID: aaron@aaronbentley.com-20090311012030-f20ofspar73brxle
Tags: release-1.13.0
Update version

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#    along with this program; if not, write to the Free Software
17
17
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
18
 
19
 
import errno
20
 
 
21
19
import bzrlib
22
20
 
23
21
from bzrlib.lazy_import import lazy_import
41
39
import bzrlib.ignores
42
40
from bzrlib.trace import note
43
41
from bzrlib.option import Option, RegistryOption
44
 
from bzrlib.workingtree import WorkingTree
45
42
 
46
43
from command import BzrToolsCommand
47
44
 
48
45
 
 
46
class cmd_clean_tree(BzrToolsCommand):
 
47
    """Remove unwanted files from working tree.
 
48
 
 
49
    By default, only unknown files, not ignored files, are deleted.  Versioned
 
50
    files are never deleted.
 
51
 
 
52
    Another class is 'detritus', which includes files emitted by bzr during
 
53
    normal operations and selftests.  (The value of these files decreases with
 
54
    time.)
 
55
 
 
56
    If no options are specified, unknown files are deleted.  Otherwise, option
 
57
    flags are respected, and may be combined.
 
58
 
 
59
    To check what clean-tree will do, use --dry-run.
 
60
    """
 
61
    takes_options = [Option('ignored', help='Delete all ignored files.'),
 
62
                     Option('detritus', help='Delete conflict files, merge'
 
63
                            ' backups, and failed selftest dirs.'),
 
64
                     Option('unknown',
 
65
                            help='Delete files unknown to bzr (default).'),
 
66
                     Option('dry-run', help='Show files to delete instead of'
 
67
                            ' deleting them.'),
 
68
                     Option('force', help='Do not prompt before deleting.')]
 
69
    def run(self, unknown=False, ignored=False, detritus=False, dry_run=False,
 
70
            force=False):
 
71
        from clean_tree import clean_tree
 
72
        if not (unknown or ignored or detritus):
 
73
            unknown = True
 
74
        if dry_run:
 
75
            force = True
 
76
        clean_tree('.', unknown=unknown, ignored=ignored, detritus=detritus, 
 
77
                   dry_run=dry_run, no_prompt=force)
 
78
 
 
79
 
49
80
class cmd_graph_ancestry(BzrToolsCommand):
50
81
    """Produce ancestry graphs using dot.
51
82
    
120
151
    takes_options = [Option('no-fix', help="Skip additional synchonization.")]
121
152
    def run(self, branch=None, no_fix=False):
122
153
        from fetch_ghosts import fetch_ghosts
123
 
        fetch_ghosts(branch, do_reconcile=not no_fix)
 
154
        fetch_ghosts(branch, no_fix)
124
155
 
125
156
strip_help="""Strip the smallest prefix containing num leading slashes  from \
126
157
each file name found in the patch file."""
517
548
        colordiff(color, check_style, *args, **kwargs)
518
549
 
519
550
 
520
 
class cmd_conflict_diff(BzrToolsCommand):
521
 
 
522
 
    """Compare a conflicted file against BASE."""
523
 
 
524
 
    encoding_type = 'exact'
525
 
    takes_args = ['file']
526
 
    takes_options = [
527
 
        RegistryOption.from_kwargs('direction', 'Direction of comparison.',
528
 
            value_switches=True, enum_switch=False,
529
 
            other='Compare OTHER against common base.',
530
 
            this='Compare THIS against common base.')]
531
 
 
532
 
    def run(self, file, direction='other'):
533
 
        from bzrlib.plugins.bzrtools.colordiff import DiffWriter
534
 
        from conflict_diff import conflict_diff
535
 
        dw = DiffWriter(self.outf, check_style=False, color='auto')
536
 
        conflict_diff(dw, file, direction)
537
 
 
538
 
 
539
551
class cmd_rspush(BzrToolsCommand):
540
552
    """Upload this branch to another location using rsync.
541
553
 
579
591
                source_tree.unlock()
580
592
        finally:
581
593
            target_tree.unlock()
582
 
 
583
 
 
584
 
class cmd_create_mirror(BzrToolsCommand):
585
 
    """Create a mirror of another branch.
586
 
 
587
 
    This is similar to `bzr branch`, but copies more settings, including the
588
 
    submit branch and nickname.
589
 
 
590
 
    It sets the public branch and parent of the target to the source location.
591
 
    """
592
 
 
593
 
    takes_args = ['source', 'target']
594
 
 
595
 
    def run(self, source, target):
596
 
        source_branch = Branch.open(source)
597
 
        from bzrlib.plugins.bzrtools.mirror import create_mirror
598
 
        create_mirror(source_branch, target, [])