/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: Aaron Bentley
  • Date: 2009-03-24 12:15:01 UTC
  • mfrom: (4195 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4196.
  • Revision ID: aaron@aaronbentley.com-20090324121501-rd8zjsdk9fok8mvk
Merge and resolve NEWS conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
"""builtin bzr commands"""
18
18
 
84
84
        tree = WorkingTree.open_containing(file_list[0])[0]
85
85
        if tree.supports_views():
86
86
            view_files = tree.views.lookup_view()
87
 
            for filename in file_list:
88
 
                if not osutils.is_inside_any(view_files, filename):
89
 
                    raise errors.FileOutsideView(filename, view_files)
 
87
            if view_files:
 
88
                for filename in file_list:
 
89
                    if not osutils.is_inside_any(view_files, filename):
 
90
                        raise errors.FileOutsideView(filename, view_files)
90
91
    else:
91
92
        tree = WorkingTree.open_containing(u'.')[0]
92
93
        if tree.supports_views():
2528
2529
               help="Type of file to export to.",
2529
2530
               type=unicode),
2530
2531
        'revision',
 
2532
        Option('filters', help='Apply content filters to export the '
 
2533
                'convenient form.'),
2531
2534
        Option('root',
2532
2535
               type=str,
2533
2536
               help="Name of the root directory inside the exported file."),
2534
2537
        ]
2535
2538
    def run(self, dest, branch_or_subdir=None, revision=None, format=None,
2536
 
        root=None):
 
2539
        root=None, filters=False):
2537
2540
        from bzrlib.export import export
2538
2541
 
2539
2542
        if branch_or_subdir is None:
2546
2549
 
2547
2550
        rev_tree = _get_one_revision_tree('export', revision, branch=b, tree=tree)
2548
2551
        try:
2549
 
            export(rev_tree, dest, format, root, subdir)
 
2552
            export(rev_tree, dest, format, root, subdir, filtered=filters)
2550
2553
        except errors.NoSuchExportFormat, e:
2551
2554
            raise errors.BzrCommandError('Unsupported export format: %s' % e.format)
2552
2555
 
2563
2566
    _see_also = ['ls']
2564
2567
    takes_options = [
2565
2568
        Option('name-from-revision', help='The path name in the old tree.'),
 
2569
        Option('filters', help='Apply content filters to display the '
 
2570
                'convenience form.'),
2566
2571
        'revision',
2567
2572
        ]
2568
2573
    takes_args = ['filename']
2569
2574
    encoding_type = 'exact'
2570
2575
 
2571
2576
    @display_command
2572
 
    def run(self, filename, revision=None, name_from_revision=False):
 
2577
    def run(self, filename, revision=None, name_from_revision=False,
 
2578
            filters=False):
2573
2579
        if revision is not None and len(revision) != 1:
2574
2580
            raise errors.BzrCommandError("bzr cat --revision takes exactly"
2575
2581
                                         " one revision specifier")
2578
2584
        branch.lock_read()
2579
2585
        try:
2580
2586
            return self._run(tree, branch, relpath, filename, revision,
2581
 
                             name_from_revision)
 
2587
                             name_from_revision, filters)
2582
2588
        finally:
2583
2589
            branch.unlock()
2584
2590
 
2585
 
    def _run(self, tree, b, relpath, filename, revision, name_from_revision):
 
2591
    def _run(self, tree, b, relpath, filename, revision, name_from_revision,
 
2592
        filtered):
2586
2593
        if tree is None:
2587
2594
            tree = b.basis_tree()
2588
2595
        rev_tree = _get_one_revision_tree('cat', revision, branch=b)
2617
2624
                raise errors.BzrCommandError(
2618
2625
                    "%r is not present in revision %s" % (
2619
2626
                        filename, rev_tree.get_revision_id()))
2620
 
        self.outf.write(content)
 
2627
        if filtered:
 
2628
            from bzrlib.filters import (
 
2629
                ContentFilterContext,
 
2630
                filtered_output_bytes,
 
2631
                )
 
2632
            filters = rev_tree._content_filter_stack(relpath)
 
2633
            chunks = content.splitlines(True)
 
2634
            content = filtered_output_bytes(chunks, filters,
 
2635
                ContentFilterContext(relpath, rev_tree))
 
2636
            self.outf.writelines(content)
 
2637
        else:
 
2638
            self.outf.write(content)
2621
2639
 
2622
2640
 
2623
2641
class cmd_local_time_offset(Command):
3144
3162
                            short_name='x',
3145
3163
                            help='Exclude tests that match this regular'
3146
3164
                                 ' expression.'),
 
3165
                     Option('subunit',
 
3166
                        help='Output test progress via subunit.'),
3147
3167
                     Option('strict', help='Fail on missing dependencies or '
3148
3168
                            'known failures.'),
3149
3169
                     Option('load-list', type=str, argname='TESTLISTFILE',
3166
3186
            lsprof_timed=None, cache_dir=None,
3167
3187
            first=False, list_only=False,
3168
3188
            randomize=None, exclude=None, strict=False,
3169
 
            load_list=None, debugflag=None, starting_with=None):
 
3189
            load_list=None, debugflag=None, starting_with=None, subunit=False):
3170
3190
        from bzrlib.tests import selftest
3171
3191
        import bzrlib.benchmarks as benchmarks
3172
3192
        from bzrlib.benchmarks import tree_creator
3188
3208
            pattern = '|'.join(testspecs_list)
3189
3209
        else:
3190
3210
            pattern = ".*"
 
3211
        if subunit:
 
3212
            try:
 
3213
                from bzrlib.tests import SubUnitBzrRunner
 
3214
            except ImportError:
 
3215
                raise errors.BzrCommandError("subunit not available. subunit "
 
3216
                    "needs to be installed to use --subunit.")
 
3217
            self.additional_selftest_args['runner_class'] = SubUnitBzrRunner
3191
3218
        if benchmark:
3192
3219
            test_suite_factory = benchmarks.test_suite
3193
3220
            # Unless user explicitly asks for quiet, be verbose in benchmarks
3388
3415
            basis_tree = tree.revision_tree(tree.last_revision())
3389
3416
        except errors.NoSuchRevision:
3390
3417
            basis_tree = tree.basis_tree()
3391
 
        changes = tree.changes_from(basis_tree)
3392
 
        if changes.has_changed():
3393
 
            raise errors.UncommittedChanges(tree)
 
3418
        if not force:
 
3419
            changes = tree.changes_from(basis_tree)
 
3420
            if changes.has_changed():
 
3421
                raise errors.UncommittedChanges(tree)
3394
3422
 
3395
3423
        view_info = _get_view_info_for_change_reporter(tree)
3396
3424
        change_reporter = delta._ChangeReporter(
3809
3837
 
3810
3838
    OTHER_BRANCH may be local or remote.
3811
3839
 
3812
 
    To filter on a range of revirions, you can use the command -r begin..end
 
3840
    To filter on a range of revisions, you can use the command -r begin..end
3813
3841
    -r revision requests a specific revision, -r ..end or -r begin.. are
3814
3842
    also valid.
3815
3843