/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

Reoncile InterGitRepository objects.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
from bzrlib.bzrdir import BzrDir, BzrDirFormat
20
20
from bzrlib.errors import NoSuchFile, NotLocalUrl
21
21
from bzrlib.lockable_files import TransportLock
22
 
from bzrlib.repository import InterRepository, Repository
 
22
from bzrlib.repository import Repository
23
23
from bzrlib.trace import info
24
24
from bzrlib.transport import Transport
25
25
 
31
31
import urllib
32
32
import urlparse
33
33
 
 
34
from dulwich.pack import PackData
 
35
 
34
36
 
35
37
class GitSmartTransport(Transport):
36
38
 
52
54
        self._client.fetch_pack(self._path, determine_wants, graph_walker, 
53
55
                pack_data, progress)
54
56
 
 
57
    def fetch_objects(self, determine_wants, graph_walker, progress=None):
 
58
        fd, path = tempfile.mkstemp(dir=self.pack_dir(), suffix=".pack")
 
59
        self.fetch_pack(determine_wants, graph_walker, lambda x: os.write(fd, x), progress)
 
60
        os.close(fd)
 
61
        try:
 
62
            p = PackData(path)
 
63
            for o in p.iterobjects():
 
64
                yield o
 
65
        finally:
 
66
            os.remove(path)
 
67
 
55
68
    def get(self, path):
56
69
        raise NoSuchFile(path)
57
70
 
99
112
 
100
113
    def __init__(self, gitdir, lockfiles):
101
114
        GitRepository.__init__(self, gitdir, lockfiles)
102
 
        from bzrlib.plugins.git import fetch
103
 
        InterRepository.register_optimiser(fetch.InterFromRemoteGitRepository)
104
115
 
105
116
    def fetch_pack(self, determine_wants, graph_walker, pack_data, progress=None):
106
117
        self._transport.fetch_pack(determine_wants, graph_walker, pack_data, progress)