~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
95
95
 
96
96
def get_format_type(typestring):
97
97
    """Parse and return a format specifier."""
98
 
    if typestring == "weave":
99
 
        return bzrdir.BzrDirFormat6()
 
98
    # Have to use BzrDirMetaFormat1 directly, so that
 
99
    # RepositoryFormat.set_default_format works
100
100
    if typestring == "default":
101
101
        return bzrdir.BzrDirMetaFormat1()
102
 
    if typestring == "metaweave":
103
 
        format = bzrdir.BzrDirMetaFormat1()
104
 
        format.repository_format = repository.RepositoryFormat7()
105
 
        return format
106
 
    if typestring == "knit":
107
 
        format = bzrdir.BzrDirMetaFormat1()
108
 
        format.repository_format = repository.RepositoryFormatKnit1()
109
 
        return format
110
 
    if typestring == "experimental-knit2":
111
 
        format = bzrdir.BzrDirMetaFormat1()
112
 
        format.repository_format = repository.RepositoryFormatKnit2()
113
 
        return format
114
 
    msg = "Unknown bzr format %s. Current formats are: default, knit,\n" \
115
 
          "metaweave and weave" % typestring
116
 
    raise errors.BzrCommandError(msg)
 
102
    try:
 
103
        return bzrdir.format_registry.make_bzrdir(typestring)
 
104
    except KeyError:
 
105
        msg = 'Unknown bzr format "%s". See "bzr help formats".' % typestring
 
106
        raise errors.BzrCommandError(msg)
117
107
 
118
108
 
119
109
# TODO: Make sure no commands unconditionally use the working directory as a
844
834
                                             % to_location)
845
835
            else:
846
836
                raise
847
 
        old_format = bzrdir.BzrDirFormat.get_default_format()
848
 
        bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
849
 
        try:
850
 
            source.create_checkout(to_location, revision_id, lightweight)
851
 
        finally:
852
 
            bzrdir.BzrDirFormat.set_default_format(old_format)
 
837
        source.create_checkout(to_location, revision_id, lightweight)
853
838
 
854
839
 
855
840
class cmd_renames(Command):
1522
1507
    """List files in a tree.
1523
1508
    """
1524
1509
 
 
1510
    takes_args = ['path?']
1525
1511
    # TODO: Take a revision or remote path and list that tree instead.
1526
1512
    takes_options = ['verbose', 'revision',
1527
1513
                     Option('non-recursive',
1539
1525
    def run(self, revision=None, verbose=False, 
1540
1526
            non_recursive=False, from_root=False,
1541
1527
            unknown=False, versioned=False, ignored=False,
1542
 
            null=False, kind=None, show_ids=False):
 
1528
            null=False, kind=None, show_ids=False, path=None):
1543
1529
 
1544
1530
        if kind and kind not in ('file', 'directory', 'symlink'):
1545
1531
            raise errors.BzrCommandError('invalid kind specified')
1550
1536
 
1551
1537
        selection = {'I':ignored, '?':unknown, 'V':versioned}
1552
1538
 
1553
 
        tree, relpath = WorkingTree.open_containing(u'.')
 
1539
        if path is None:
 
1540
            fs_path = '.'
 
1541
            prefix = ''
 
1542
        else:
 
1543
            if from_root:
 
1544
                raise errors.BzrCommandError('cannot specify both --from-root'
 
1545
                                             ' and PATH')
 
1546
            fs_path = path
 
1547
            prefix = path
 
1548
        tree, relpath = WorkingTree.open_containing(fs_path)
1554
1549
        if from_root:
1555
1550
            relpath = u''
1556
1551
        elif relpath:
1561
1556
 
1562
1557
        for fp, fc, fkind, fid, entry in tree.list_files(include_root=False):
1563
1558
            if fp.startswith(relpath):
1564
 
                fp = fp[len(relpath):]
 
1559
                fp = osutils.pathjoin(prefix, fp[len(relpath):])
1565
1560
                if non_recursive and '/' in fp:
1566
1561
                    continue
1567
1562
                if not all and not selection[fc]:
2109
2104
                            help='clean temporary tests directories'
2110
2105
                                 ' without running tests'),
2111
2106
                     ]
 
2107
    encoding_type = 'replace'
2112
2108
 
2113
2109
    def run(self, testspecs_list=None, verbose=None, one=False,
2114
2110
            keep_output=False, transport=None, benchmark=None,