/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to remote.py

Return mapping in revision_id_bzr_to_foreign() as required by the interface.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
from bzrlib.trace import info
24
24
from bzrlib.transport import Transport
25
25
 
26
 
from bzrlib.plugins.git import lazy_check_versions
27
 
lazy_check_versions()
28
 
 
29
26
from bzrlib.plugins.git.branch import GitBranch
30
27
from bzrlib.plugins.git.errors import NoSuchRef
31
28
from bzrlib.plugins.git.dir import GitDir
38
35
import urlparse
39
36
 
40
37
import dulwich as git
41
 
from dulwich.pack import PackData, Pack, PackIndex
 
38
from dulwich.pack import PackData, Pack
42
39
 
43
40
# Don't run any tests on GitSmartTransport as it is not intended to be 
44
41
# a full implementation of Transport
106
103
        raise NotLocalUrl(self.transport.base)
107
104
 
108
105
 
109
 
class TemporaryPackIterator(Pack):
110
 
 
111
 
    def __init__(self, path, resolve_ext_ref):
112
 
        self.resolve_ext_ref = resolve_ext_ref
113
 
        super(TemporaryPackIterator, self).__init__(path)
114
 
 
115
 
    @property
116
 
    def idx(self):
117
 
        if self._idx is None:
118
 
            self._data.create_index_v2(self._idx_path, self.resolve_ext_ref)
119
 
            self._idx = PackIndex(self._idx_path)
120
 
        return self._idx
121
 
 
122
 
    def __del__(self):
123
 
        os.remove(self._data_path)
124
 
        os.remove(self._idx_path)
125
 
 
126
 
 
127
106
class RemoteGitRepository(GitRepository):
128
107
 
129
108
    def __init__(self, gitdir, lockfiles):
134
113
        self._transport.fetch_pack(determine_wants, graph_walker, pack_data, 
135
114
            progress)
136
115
 
137
 
    def fetch_objects(self, determine_wants, graph_walker, resolve_ext_ref, progress=None):
 
116
    def fetch_objects(self, determine_wants, graph_walker, progress=None):
138
117
        fd, path = tempfile.mkstemp(suffix=".pack")
139
118
        self.fetch_pack(determine_wants, graph_walker, lambda x: os.write(fd, x), progress)
140
119
        os.close(fd)
141
 
        if os.path.getsize(path) == 0:
142
 
            return {}
143
 
        return TemporaryPackIterator(path[:-len(".pack")], resolve_ext_ref)
 
120
        basename = path[:-len(".pack")]
 
121
        p = PackData(path)
 
122
        p.create_index_v2(basename+".idx")
 
123
        pack = Pack(basename)
 
124
        os.remove(path)
 
125
        return (len(p), pack.iterobjects())
144
126
 
145
127
 
146
128
class RemoteGitBranch(GitBranch):