/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 branch.py

Reduce number of round trips when fetching from Git.

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
class GitBranch(ForeignBranch):
117
117
    """An adapter to git repositories for bzr Branch objects."""
118
118
 
119
 
    def __init__(self, bzrdir, repository, name, head, lockfiles):
 
119
    def __init__(self, bzrdir, repository, name, lockfiles):
120
120
        self.repository = repository
121
121
        self._format = GitBranchFormat()
122
122
        self.control_files = lockfiles
123
123
        self.bzrdir = bzrdir
124
124
        super(GitBranch, self).__init__(repository.get_mapping())
125
125
        self.name = name
126
 
        self.head = head
 
126
        self._head = None
127
127
        self.base = bzrdir.transport.base
128
128
 
129
129
    def _get_nick(self, local=False, possible_master_transports=None):
160
160
        newhead, self.mapping = self.mapping.revision_id_bzr_to_foreign(revid)
161
161
        self._set_head(newhead)
162
162
 
163
 
    def _set_head(self, head):
164
 
        self.head = head
165
 
        self.repository._git.set_ref(self.name, self.head)
166
 
        self._clear_cached_state()
167
 
 
168
163
    def lock_write(self):
169
164
        self.control_files.lock_write()
170
165
 
254
249
        ret.reverse()
255
250
        return ret
256
251
 
 
252
    def _get_head(self):
 
253
        return self.repository._git.ref(self.name)
 
254
 
 
255
    def _set_head(self, value):
 
256
        self._head = value
 
257
        self.repository._git.set_ref(self.name, self._head)
 
258
        self._clear_cached_state()
 
259
 
 
260
    head = property(_get_head, _set_head)
 
261
 
257
262
    def get_config(self):
258
263
        return GitBranchConfig(self)
259
264