/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

Fix formatting, remove catch-all for exceptions when opening local repositories.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
from bzrlib.plugins.git import git
27
27
from bzrlib.plugins.git.branch import GitBranch
 
28
from bzrlib.plugins.git.dir import GitDir
28
29
from bzrlib.plugins.git.foreign import ForeignBranch
29
30
from bzrlib.plugins.git.repository import GitFormat, GitRepository
30
31
 
31
32
import urllib
32
33
import urlparse
33
34
 
 
35
from dulwich.pack import PackData
 
36
 
34
37
 
35
38
class GitSmartTransport(Transport):
36
39
 
52
55
        self._client.fetch_pack(self._path, determine_wants, graph_walker, 
53
56
                pack_data, progress)
54
57
 
 
58
    def fetch_objects(self, determine_wants, graph_walker, progress=None):
 
59
        fd, path = tempfile.mkstemp(dir=self.pack_dir(), suffix=".pack")
 
60
        self.fetch_pack(determine_wants, graph_walker, lambda x: os.write(fd, x), progress)
 
61
        os.close(fd)
 
62
        try:
 
63
            p = PackData(path)
 
64
            for o in p.iterobjects():
 
65
                yield o
 
66
        finally:
 
67
            os.remove(path)
 
68
 
55
69
    def get(self, path):
56
70
        raise NoSuchFile(path)
57
71
 
65
79
        return GitSmartTransport(newurl, self._client)
66
80
 
67
81
 
68
 
class RemoteGitDir(BzrDir):
 
82
class RemoteGitDir(GitDir):
69
83
 
70
84
    def __init__(self, transport, lockfiles, format):
71
85
        self._format = format
73
87
        self.transport = transport
74
88
        self._lockfiles = lockfiles
75
89
 
76
 
    def is_supported(self):
77
 
        return True
78
 
 
79
90
    def open_repository(self):
80
91
        return RemoteGitRepository(self, self._lockfiles)
81
92
 
87
98
    def open_workingtree(self):
88
99
        raise NotLocalUrl(self.transport.base)
89
100
 
90
 
    def cloning_metadir(self, stacked=False):
91
 
        """Produce a metadir suitable for cloning with."""
92
 
        if stacked:
93
 
            return bzrlib.bzrdir.format_registry.make_bzrdir("1.6.1-rich-root")
94
 
        else:
95
 
            return bzrlib.bzrdir.format_registry.make_bzrdir("rich-root-pack")
96
 
 
97
101
 
98
102
class RemoteGitRepository(GitRepository):
99
103
 
100
104
    def __init__(self, gitdir, lockfiles):
101
105
        GitRepository.__init__(self, gitdir, lockfiles)
102
106
 
103
 
    def fetch_pack(self, determine_wants, graph_walker, pack_data):
104
 
        self._transport.fetch_pack(determine_wants, graph_walker, pack_data)
 
107
    def fetch_pack(self, determine_wants, graph_walker, pack_data, 
 
108
                   progress=None):
 
109
        self._transport.fetch_pack(determine_wants, graph_walker, pack_data, 
 
110
            progress)
105
111
 
106
112
 
107
113
class RemoteGitBranch(GitBranch):
114
120
        super(RemoteGitBranch, self).__init__(bzrdir, repository, name, self._ref, lockfiles)
115
121
 
116
122
    def last_revision(self):
117
 
        return self._ref
 
123
        return self.mapping.revision_id_foreign_to_bzr(self._ref)
 
124