~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: Aaron Bentley
  • Date: 2006-11-23 18:06:43 UTC
  • Revision ID: abentley@panoramicfeedback.com-20061123180643-6ry3xqozdbn4cfhy
Update docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007 Aaron Bentley <aaron.bentley@utoronto.ca>
 
1
# Copyright (C) 2005, 2006 Aaron Bentley <aaron.bentley@utoronto.ca>
2
2
# Copyright (C) 2005, 2006 Canonical Limited.
3
3
# Copyright (C) 2006 Michael Ellerman.
4
4
#
23
23
import bzrlib
24
24
 
25
25
 
26
 
__version__ = '0.17.0'
 
26
__version__ = '0.13.0'
27
27
 
28
28
 
29
29
version_info = tuple(int(n) for n in __version__.split('.'))
47
47
        # get the message out any way we can
48
48
        from warnings import warn as warning
49
49
    if bzrlib_version < desired:
50
 
        warning('Installed Bazaar version %s is too old to be used with'
51
 
                ' plugin \n'
52
 
                '"Bzrtools" %s.' % (bzrlib.__version__, __version__))
 
50
        warning('Installed bzr version %s is too old to be used with bzrtools'
 
51
                ' %s.' % (bzrlib.__version__, __version__))
53
52
        # Not using BzrNewError, because it may not exist.
54
53
        raise Exception, ('Version mismatch', version_info)
55
54
    else:
56
 
        warning('Plugin "Bzrtools" is not up to date with installed Bazaar'
57
 
                ' version %s.\n'
58
 
                ' There should be a newer version of Bzrtools available, e.g.'
59
 
                ' %i.%i.'
 
55
        warning('Bzrtools is not up to date with installed bzr version %s.'
 
56
                ' \nThere should be a newer version available, e.g. %i.%i.' 
60
57
                % (bzrlib.__version__, bzrlib_version[0], bzrlib_version[1]))
61
58
        if bzrlib_version != desired_plus:
62
59
            raise Exception, 'Version mismatch'
64
61
 
65
62
check_bzrlib_version(version_info[:2])
66
63
 
67
 
from bzrlib.lazy_import import lazy_import
68
 
lazy_import(globals(), """
69
 
from bzrlib import help
70
 
import shelf
71
 
""")
72
64
 
73
65
from errors import CommandError, NoPyBaz
74
66
from patchsource import BzrPatchSource
 
67
from shelf import Shelf
75
68
import sys
76
69
import os.path
77
70
 
79
72
import bzrlib.commands
80
73
from bzrlib.commands import get_cmd_object
81
74
from bzrlib.errors import BzrCommandError
 
75
from bzrlib.help import command_usage
82
76
import bzrlib.ignores
83
77
from bzrlib.option import Option
84
78
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), 
160
154
                     help="Do not use rsvg to produce antialiased output"), 
161
155
                     Option('merge-branch', type=str, 
162
156
                     help="Use this branch to calcuate a merge base"), 
163
 
                     Option('cluster', help="Use clustered output."),
164
 
                     Option('max-distance', help="Show no nodes farther than this",
165
 
                            type=int)]
 
157
                     Option('cluster', help="Use clustered output.")]
166
158
    def run(self, branch, file, no_collapse=False, no_antialias=False,
167
 
        merge_branch=None, cluster=False, max_distance=None):
 
159
        merge_branch=None, cluster=False):
168
160
        import graph
169
161
        if cluster:
170
162
            ranking = "cluster"
171
163
        else:
172
164
            ranking = "forced"
173
165
        graph.write_ancestry_file(branch, file, not no_collapse, 
174
 
                                  not no_antialias, merge_branch, ranking, 
175
 
                                  max_distance=max_distance)
 
166
                                  not no_antialias, merge_branch, ranking)
176
167
 
177
168
 
178
169
class cmd_fetch_ghosts(bzrlib.commands.Command):
188
179
 
189
180
strip_help="""Strip the smallest prefix containing num leading slashes  from \
190
181
each file name found in the patch file."""
 
182
Option.OPTIONS['bzrdiff'] = Option('bzrdiff',type=None,
 
183
                                help="""Handle extra bzr tags""")
191
184
 
192
185
 
193
186
class cmd_patch(bzrlib.commands.Command):
194
187
    """Apply a named patch to the current tree.
195
188
    """
196
189
    takes_args = ['filename?']
197
 
    takes_options = [Option('strip', type=int, help=strip_help),
198
 
                     Option('silent', help='Suppress chatter')]
199
 
    def run(self, filename=None, strip=None, silent=False):
 
190
    takes_options = [Option('strip', type=int, help=strip_help)]
 
191
    def run(self, filename=None, strip=-1, bzrdiff=0):
200
192
        from patch import patch
201
193
        from bzrlib.workingtree import WorkingTree
202
194
        wt = WorkingTree.open_containing('.')[0]
203
 
        if strip is None:
204
 
            strip = 0
205
 
        return patch(wt, filename, strip, silent)
 
195
        if strip == -1:
 
196
            if bzrdiff: strip = 0
 
197
            else:       strip = 0
 
198
 
 
199
        return patch(wt, filename, strip, legacy= not bzrdiff)
206
200
 
207
201
 
208
202
class cmd_shelve(bzrlib.commands.Command):
250
244
                                  "parameter.")
251
245
 
252
246
        source = BzrPatchSource(revision, file_list)
253
 
        s = shelf.Shelf(source.base)
 
247
        s = Shelf(source.base)
254
248
        s.shelve(source, all, message, no_color)
255
249
        return 0
256
250
 
278
272
    aliases = ['switch']
279
273
    takes_args = ['othershelf']
280
274
    def run(self, othershelf):
281
 
        s = shelf.Shelf(self.shelf.base, othershelf)
 
275
        s = Shelf(self.shelf.base, othershelf)
282
276
        s.make_default()
283
277
 
284
278
 
311
305
            args_list = []
312
306
        cmd = self._get_cmd_object(subcommand)
313
307
        source = BzrPatchSource()
314
 
        s = shelf.Shelf(source.base)
 
308
        s = Shelf(source.base)
315
309
        cmd.shelf = s
316
 
 
317
 
        if args_list is None:
318
 
            args_list = []
319
310
        return cmd.run_argv_aliases(args_list)
320
311
 
321
312
    def _get_cmd_object(self, cmd_name):
338
329
        cmd_obj = cmd_class()
339
330
        indent = 2 * ' '
340
331
 
341
 
        usage = cmd_obj._usage()
 
332
        usage = command_usage(cmd_obj)
342
333
        usage = usage.replace('bzr shelf-', '')
343
334
        text.append('%s%s\n' % (indent, usage))
344
335
 
379
370
    takes_args = ['patch?']
380
371
    def run(self, patch=None, all=False, force=False, no_color=False):
381
372
        source = BzrPatchSource()
382
 
        s = shelf.Shelf(source.base)
 
373
        s = Shelf(source.base)
383
374
        s.unshelve(source, patch, all, force, no_color)
384
375
        return 0
385
376
 
444
435
    """
445
436
    Create a new checkout, associated with a new repository branch.
446
437
    
447
 
    When you cbranch, bzr looks up a target location in locations.conf, and
448
 
    creates the branch there.
449
 
 
450
 
    In your locations.conf, add the following lines:
451
 
    [/working_directory_root]
452
 
    cbranch_target = /branch_root
453
 
    cbranch_target:policy = appendpath
454
 
 
455
 
    This will mean that if you run "bzr cbranch foo/bar foo/baz" in the
456
 
    working directory root, the branch will be created in 
457
 
    "/branch_root/foo/baz"
458
 
 
459
 
    NOTE: cbranch also supports "cbranch_root", but that behaviour is
460
 
    deprecated.
 
438
    When you cbranch, bzr looks up the repository associated with your current
 
439
    directory in locations.conf.  It creates a new branch in that repository
 
440
    with the same name and relative path as the checkout you request.
 
441
 
 
442
    The locations.conf parameter is "cbranch_root".  So if you want 
 
443
    cbranch operations in /home/jrandom/bigproject to produce branches in 
 
444
    /home/jrandom/bigproject/repository, you'd add this:
 
445
 
 
446
    [/home/jrandom/bigproject]
 
447
    cbranch_root = /home/jrandom/bigproject/repository
 
448
 
 
449
    Note that if "/home/jrandom/bigproject/repository" isn't a repository,
 
450
    standalone branches will be produced.  Standalone branches will also
 
451
    be produced if the source branch is in 0.7 format (or earlier).
461
452
    """
462
453
    takes_options = [Option("lightweight", 
463
454
                            help="Create a lightweight checkout"), 'revision']
535
526
 
536
527
 
537
528
class cmd_import(bzrlib.commands.Command):
538
 
    """Import sources from a directory, tarball or zip file
 
529
    """Import sources from a tarball
539
530
    
540
 
    This command will import a directory, tarball or zip file into a bzr
541
 
    tree, replacing any versioned files already present.  If a directory is
542
 
    specified, it is used as the target.  If the directory does not exist, or
543
 
    is not versioned, it is created.
 
531
    This command will import a tarball into a bzr tree, replacing any versioned
 
532
    files already present.  If a directory is specified, it is used as the
 
533
    target.  If the directory does not exist, or is not versioned, it is
 
534
    created.
544
535
 
545
536
    Tarballs may be gzip or bzip2 compressed.  This is autodetected.
546
537
 
547
 
    If the tarball or zip has a single root directory, that directory is
548
 
    stripped when extracting the tarball.  This is not done for directories.
 
538
    If the tarball has a single root directory, that directory is stripped
 
539
    when extracting the tarball.
549
540
    """
550
541
    
551
542
    takes_args = ['source', 'tree?']
557
548
class cmd_cdiff(bzrlib.commands.Command):
558
549
    """A color version of bzr's diff"""
559
550
    takes_args = property(lambda x: get_cmd_object('diff').takes_args)
560
 
 
561
 
    def _takes_options(self):
562
 
        options = list(get_cmd_object('diff').takes_options)
563
 
        options.append(Option('check-style',
564
 
            help='Warn if trailing whitespace or spurious changes have been'
565
 
                 ' added.'))
566
 
        return options
567
 
 
568
 
    takes_options = property(_takes_options)
569
 
 
570
 
    def run(self, check_style=False, *args, **kwargs):
 
551
    takes_options = property(lambda x: get_cmd_object('diff').takes_options)
 
552
    def run(*args, **kwargs):
571
553
        from colordiff import colordiff
572
 
        colordiff(check_style, *args, **kwargs)
 
554
        colordiff(*args, **kwargs)
573
555
 
574
556
 
575
557
class cmd_baz_import(bzrlib.commands.Command):
710
692
    from unittest import TestSuite
711
693
    import bzrtools
712
694
    import tests.clean_tree
713
 
    import tests.is_clean
714
 
    import tests.upstream_import
 
695
    import upstream_import
715
696
    import zap
716
697
    import tests.blackbox
717
698
    import tests.shelf_tests
726
707
    result.addTest(tests.test_suite())
727
708
    result.addTest(TestLoader().loadTestsFromModule(tests.shelf_tests))
728
709
    result.addTest(tests.blackbox.test_suite())
729
 
    result.addTest(tests.upstream_import.test_suite())
 
710
    result.addTest(upstream_import.test_suite())
730
711
    result.addTest(zap.test_suite())
731
 
    result.addTest(TestLoader().loadTestsFromModule(tests.is_clean))
732
712
    return result