~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/remotebranch.py

  • Committer: Martin Pool
  • Date: 2005-05-09 08:47:06 UTC
  • Revision ID: mbp@sourcefrog.net-20050509084706-19ca82cc007ab3f8
- RemoteBranch.__str__ and repr
- Better code for locating root of remote branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
import gzip
29
29
from sets import Set
30
30
from cStringIO import StringIO
 
31
import urllib2
31
32
 
32
33
from errors import BzrError, BzrCheckError
33
 
from branch import Branch
 
34
from branch import Branch, BZR_BRANCH_FORMAT
34
35
from trace import mutter
35
36
 
36
37
# velocitynet.com.au transparently proxies connections and thereby
77
78
    while True:
78
79
        try:
79
80
            ff = get_url(url + '/.bzr/branch-format')
 
81
 
 
82
            fmt = ff.read()
80
83
            ff.close()
 
84
 
 
85
            fmt = fmt.rstrip('\r\n')
 
86
            if fmt != BZR_BRANCH_FORMAT.rstrip('\r\n'):
 
87
                raise BzrError("sorry, branch format %r not supported at url %s"
 
88
                               % (fmt, url))
 
89
            
81
90
            return url
82
91
        except urllib2.URLError:
83
92
            pass
92
101
 
93
102
 
94
103
class RemoteBranch(Branch):
95
 
    def __init__(self, baseurl, find_root=False, lock_mode='r'):
 
104
    def __init__(self, baseurl, find_root=True, lock_mode='r'):
96
105
        """Create new proxy for a remote branch."""
97
106
        if lock_mode not in ('', 'r'):
98
107
            raise BzrError('lock mode %r is not supported for remote branches'
99
108
                           % lock_mode)
100
 
        
101
 
        self.baseurl = baseurl
102
 
        self._check_format()
 
109
 
 
110
        if find_root:
 
111
            self.baseurl = _find_remote_root(baseurl)
 
112
        else:
 
113
            self.baseurl = baseurl
 
114
            self._check_format()
103
115
 
104
116
    def __str__(self):
105
117
        return '%s(%r)' % (self.__class__.__name__, self.baseurl)