/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

Partially fix pull.

Show diffs side-by-side

added added

removed removed

Lines of Context:
61
61
            ret = self._client
62
62
            self._client = None
63
63
            return ret
64
 
        return git.client.TCPGitClient(self._host, self._port)
 
64
        return git.client.TCPGitClient(self._host, self._port, 
 
65
            capabilities=["multi_ack", "side-band-64k", "ofs-delta", "side-band"])
65
66
 
66
67
    def fetch_pack(self, determine_wants, graph_walker, pack_data, progress=None):
67
68
        if progress is None:
106
107
        raise NotLocalUrl(self.transport.base)
107
108
 
108
109
 
 
110
class EmptyObjectStoreIterator(dict):
 
111
 
 
112
    def iterobjects(self):
 
113
        return []
 
114
 
 
115
 
109
116
class TemporaryPackIterator(Pack):
110
117
 
 
118
    def __init__(self, path, resolve_ext_ref):
 
119
        self.resolve_ext_ref = resolve_ext_ref
 
120
        super(TemporaryPackIterator, self).__init__(path)
 
121
 
111
122
    @property
112
123
    def idx(self):
113
124
        if self._idx is None:
114
 
            self._data.create_index_v2(self._idx_path)
 
125
            self._data.create_index_v2(self._idx_path, self.resolve_ext_ref)
115
126
            self._idx = PackIndex(self._idx_path)
116
127
        return self._idx
117
128
 
130
141
        self._transport.fetch_pack(determine_wants, graph_walker, pack_data, 
131
142
            progress)
132
143
 
133
 
    def fetch_objects(self, determine_wants, graph_walker, progress=None):
 
144
    def fetch_objects(self, determine_wants, graph_walker, resolve_ext_ref, progress=None):
134
145
        fd, path = tempfile.mkstemp(suffix=".pack")
135
146
        self.fetch_pack(determine_wants, graph_walker, lambda x: os.write(fd, x), progress)
136
147
        os.close(fd)
137
 
        return TemporaryPackIterator(path[:-len(".pack")])
 
148
        if os.path.getsize(path) == 0:
 
149
            return EmptyObjectStoreIterator()
 
150
        return TemporaryPackIterator(path[:-len(".pack")], resolve_ext_ref)
138
151
 
139
152
 
140
153
class RemoteGitBranch(GitBranch):