~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Andrew Bennetts
  • Date: 2009-03-24 04:26:34 UTC
  • mfrom: (4190 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4194.
  • Revision ID: andrew.bennetts@canonical.com-20090324042634-cf4y15a5y24fw2n0
Merge bzr.dev, improve NEWS entry and bzrlib.smart.request docs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
83
83
        tree = WorkingTree.open_containing(file_list[0])[0]
84
84
        if tree.supports_views():
85
85
            view_files = tree.views.lookup_view()
86
 
            for filename in file_list:
87
 
                if not osutils.is_inside_any(view_files, filename):
88
 
                    raise errors.FileOutsideView(filename, view_files)
 
86
            if view_files:
 
87
                for filename in file_list:
 
88
                    if not osutils.is_inside_any(view_files, filename):
 
89
                        raise errors.FileOutsideView(filename, view_files)
89
90
    else:
90
91
        tree = WorkingTree.open_containing(u'.')[0]
91
92
        if tree.supports_views():
2527
2528
               help="Type of file to export to.",
2528
2529
               type=unicode),
2529
2530
        'revision',
 
2531
        Option('filters', help='Apply content filters to export the '
 
2532
                'convenient form.'),
2530
2533
        Option('root',
2531
2534
               type=str,
2532
2535
               help="Name of the root directory inside the exported file."),
2533
2536
        ]
2534
2537
    def run(self, dest, branch_or_subdir=None, revision=None, format=None,
2535
 
        root=None):
 
2538
        root=None, filters=False):
2536
2539
        from bzrlib.export import export
2537
2540
 
2538
2541
        if branch_or_subdir is None:
2545
2548
 
2546
2549
        rev_tree = _get_one_revision_tree('export', revision, branch=b, tree=tree)
2547
2550
        try:
2548
 
            export(rev_tree, dest, format, root, subdir)
 
2551
            export(rev_tree, dest, format, root, subdir, filtered=filters)
2549
2552
        except errors.NoSuchExportFormat, e:
2550
2553
            raise errors.BzrCommandError('Unsupported export format: %s' % e.format)
2551
2554
 
2562
2565
    _see_also = ['ls']
2563
2566
    takes_options = [
2564
2567
        Option('name-from-revision', help='The path name in the old tree.'),
 
2568
        Option('filters', help='Apply content filters to display the '
 
2569
                'convenience form.'),
2565
2570
        'revision',
2566
2571
        ]
2567
2572
    takes_args = ['filename']
2568
2573
    encoding_type = 'exact'
2569
2574
 
2570
2575
    @display_command
2571
 
    def run(self, filename, revision=None, name_from_revision=False):
 
2576
    def run(self, filename, revision=None, name_from_revision=False,
 
2577
            filters=False):
2572
2578
        if revision is not None and len(revision) != 1:
2573
2579
            raise errors.BzrCommandError("bzr cat --revision takes exactly"
2574
2580
                                         " one revision specifier")
2577
2583
        branch.lock_read()
2578
2584
        try:
2579
2585
            return self._run(tree, branch, relpath, filename, revision,
2580
 
                             name_from_revision)
 
2586
                             name_from_revision, filters)
2581
2587
        finally:
2582
2588
            branch.unlock()
2583
2589
 
2584
 
    def _run(self, tree, b, relpath, filename, revision, name_from_revision):
 
2590
    def _run(self, tree, b, relpath, filename, revision, name_from_revision,
 
2591
        filtered):
2585
2592
        if tree is None:
2586
2593
            tree = b.basis_tree()
2587
2594
        rev_tree = _get_one_revision_tree('cat', revision, branch=b)
2616
2623
                raise errors.BzrCommandError(
2617
2624
                    "%r is not present in revision %s" % (
2618
2625
                        filename, rev_tree.get_revision_id()))
2619
 
        self.outf.write(content)
 
2626
        if filtered:
 
2627
            from bzrlib.filters import (
 
2628
                ContentFilterContext,
 
2629
                filtered_output_bytes,
 
2630
                )
 
2631
            filters = rev_tree._content_filter_stack(relpath)
 
2632
            chunks = content.splitlines(True)
 
2633
            content = filtered_output_bytes(chunks, filters,
 
2634
                ContentFilterContext(relpath, rev_tree))
 
2635
            self.outf.writelines(content)
 
2636
        else:
 
2637
            self.outf.write(content)
2620
2638
 
2621
2639
 
2622
2640
class cmd_local_time_offset(Command):
3143
3161
                            short_name='x',
3144
3162
                            help='Exclude tests that match this regular'
3145
3163
                                 ' expression.'),
 
3164
                     Option('subunit',
 
3165
                        help='Output test progress via subunit.'),
3146
3166
                     Option('strict', help='Fail on missing dependencies or '
3147
3167
                            'known failures.'),
3148
3168
                     Option('load-list', type=str, argname='TESTLISTFILE',
3165
3185
            lsprof_timed=None, cache_dir=None,
3166
3186
            first=False, list_only=False,
3167
3187
            randomize=None, exclude=None, strict=False,
3168
 
            load_list=None, debugflag=None, starting_with=None):
 
3188
            load_list=None, debugflag=None, starting_with=None, subunit=False):
3169
3189
        from bzrlib.tests import selftest
3170
3190
        import bzrlib.benchmarks as benchmarks
3171
3191
        from bzrlib.benchmarks import tree_creator
3187
3207
            pattern = '|'.join(testspecs_list)
3188
3208
        else:
3189
3209
            pattern = ".*"
 
3210
        if subunit:
 
3211
            try:
 
3212
                from bzrlib.tests import SubUnitBzrRunner
 
3213
            except ImportError:
 
3214
                raise errors.BzrCommandError("subunit not available. subunit "
 
3215
                    "needs to be installed to use --subunit.")
 
3216
            self.additional_selftest_args['runner_class'] = SubUnitBzrRunner
3190
3217
        if benchmark:
3191
3218
            test_suite_factory = benchmarks.test_suite
3192
3219
            # Unless user explicitly asks for quiet, be verbose in benchmarks