~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Alexander Belchenko
  • Date: 2007-01-04 23:36:44 UTC
  • mfrom: (2224 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2225.
  • Revision ID: bialix@ukr.net-20070104233644-7znkxoj9b0y7ev28
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
1522
1512
    """List files in a tree.
1523
1513
    """
1524
1514
 
 
1515
    takes_args = ['path?']
1525
1516
    # TODO: Take a revision or remote path and list that tree instead.
1526
1517
    takes_options = ['verbose', 'revision',
1527
1518
                     Option('non-recursive',
1539
1530
    def run(self, revision=None, verbose=False, 
1540
1531
            non_recursive=False, from_root=False,
1541
1532
            unknown=False, versioned=False, ignored=False,
1542
 
            null=False, kind=None, show_ids=False):
 
1533
            null=False, kind=None, show_ids=False, path=None):
1543
1534
 
1544
1535
        if kind and kind not in ('file', 'directory', 'symlink'):
1545
1536
            raise errors.BzrCommandError('invalid kind specified')
1550
1541
 
1551
1542
        selection = {'I':ignored, '?':unknown, 'V':versioned}
1552
1543
 
1553
 
        tree, relpath = WorkingTree.open_containing(u'.')
 
1544
        if path is None:
 
1545
            fs_path = '.'
 
1546
            prefix = ''
 
1547
        else:
 
1548
            if from_root:
 
1549
                raise errors.BzrCommandError('cannot specify both --from-root'
 
1550
                                             ' and PATH')
 
1551
            fs_path = path
 
1552
            prefix = path
 
1553
        tree, relpath = WorkingTree.open_containing(fs_path)
1554
1554
        if from_root:
1555
1555
            relpath = u''
1556
1556
        elif relpath:
1561
1561
 
1562
1562
        for fp, fc, fkind, fid, entry in tree.list_files(include_root=False):
1563
1563
            if fp.startswith(relpath):
1564
 
                fp = fp[len(relpath):]
 
1564
                fp = osutils.pathjoin(prefix, fp[len(relpath):])
1565
1565
                if non_recursive and '/' in fp:
1566
1566
                    continue
1567
1567
                if not all and not selection[fc]: