~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/remotebranch.py

  • Committer: Aaron Bentley
  • Date: 2005-09-12 02:53:07 UTC
  • mto: (1185.3.4)
  • mto: This revision was merged to the branch mainline in revision 1390.
  • Revision ID: aaron.bentley@utoronto.ca-20050912025307-8c21544e8db1cbdb
added all_descendants and node_distances, exception when root doesn't exist

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
import gzip
28
28
from cStringIO import StringIO
29
 
import os
30
29
import urllib2
31
 
import urlparse
32
 
 
33
 
from bzrlib.errors import BzrError, BzrCheckError
34
 
from bzrlib.branch import Branch, BZR_BRANCH_FORMAT
35
 
from bzrlib.trace import mutter
36
 
from bzrlib.xml import serializer_v4
 
30
 
 
31
from errors import BzrError, BzrCheckError
 
32
from branch import Branch, BZR_BRANCH_FORMAT
 
33
from trace import mutter
 
34
 
 
35
# velocitynet.com.au transparently proxies connections and thereby
 
36
# breaks keep-alive -- sucks!
37
37
 
38
38
 
39
39
ENABLE_URLGRABBER = False
84
84
    orig_url = url
85
85
    while True:
86
86
        try:
87
 
            fmt_url = url + '/.bzr/branch-format'
88
 
            ff = get_url(fmt_url)
 
87
            ff = get_url(url + '/.bzr/branch-format')
 
88
 
89
89
            fmt = ff.read()
90
90
            ff.close()
91
91
 
98
98
        except urllib2.URLError:
99
99
            pass
100
100
 
101
 
        scheme, host, path = list(urlparse.urlparse(url))[:3]
102
 
        # discard params, query, fragment
103
 
        
104
 
        # strip off one component of the path component
105
 
        idx = path.rfind('/')
106
 
        if idx == -1 or path == '/':
107
 
            raise BzrError('no branch root found for URL %s'
108
 
                           ' or enclosing directories'
109
 
                           % orig_url)
110
 
        path = path[:idx]
111
 
        url = urlparse.urlunparse((scheme, host, path, '', '', ''))
 
101
        try:
 
102
            idx = url.rindex('/')
 
103
        except ValueError:
 
104
            raise BzrError('no branch root found for URL %s' % orig_url)
 
105
 
 
106
        url = url[:idx]        
112
107
        
113
108
 
114
109
 
159
154
 
160
155
 
161
156
    def get_revision(self, revision_id):
 
157
        from bzrlib.revision import Revision
 
158
        from bzrlib.xml import unpack_xml
162
159
        try:
163
160
            revf = self.revision_store[revision_id]
164
161
        except KeyError:
165
162
            raise NoSuchRevision(self, revision_id)
166
 
        r = serializer_v4.read_revision(revf)
 
163
        r = unpack_xml(Revision, revf)
167
164
        if r.revision_id != revision_id:
168
165
            raise BzrCheckError('revision stored as {%s} actually contains {%s}'
169
166
                                % (revision_id, r.revision_id))