~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bzrdir.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-03-09 06:39:13 UTC
  • mfrom: (1596.2.6 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20060309063913-6d8ce700706d0802
Merge knit performance stage 1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
        """Return true if this bzrdir is one whose format we can convert from."""
66
66
        return True
67
67
 
68
 
    def _check_supported(self, format, allow_unsupported):
 
68
    @staticmethod
 
69
    def _check_supported(format, allow_unsupported):
69
70
        """Check whether format is a supported format.
70
71
 
71
72
        If allow_unsupported is True, this is a no-op.
72
73
        """
73
74
        if not allow_unsupported and not format.is_supported():
74
 
            raise errors.UnsupportedFormatError(format)
 
75
            # see open_downlevel to open legacy branches.
 
76
            raise errors.UnsupportedFormatError(
 
77
                    'sorry, format %s not supported' % format,
 
78
                    ['use a different bzr version',
 
79
                     'or remove the .bzr directory'
 
80
                     ' and "bzr init" again'])
75
81
 
76
82
    def clone(self, url, revision_id=None, basis=None, force_new_repo=False):
77
83
        """Clone this bzrdir and its contents to url verbatim.
396
402
        t = get_transport(base)
397
403
        mutter("trying to open %r with transport %r", base, t)
398
404
        format = BzrDirFormat.find_format(t)
399
 
        if not _unsupported and not format.is_supported():
400
 
            # see open_downlevel to open legacy branches.
401
 
            raise errors.UnsupportedFormatError(
402
 
                    'sorry, format %s not supported' % format,
403
 
                    ['use a different bzr version',
404
 
                     'or remove the .bzr directory'
405
 
                     ' and "bzr init" again'])
 
405
        BzrDir._check_supported(format, _unsupported)
406
406
        return format.open(t, _found=True)
407
407
 
408
408
    def open_branch(self, unsupported=False):
441
441
        while True:
442
442
            try:
443
443
                format = BzrDirFormat.find_format(a_transport)
 
444
                BzrDir._check_supported(format, False)
444
445
                return format.open(a_transport), a_transport.relpath(url)
445
446
            except errors.NotBranchError, e:
446
447
                mutter('not a branch in: %r %s', a_transport.base, e)