~jelmer/bzr-git/lp-pqm

« back to all changes in this revision

Viewing changes to transportgit.py

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-09-20 13:24:15 UTC
  • mfrom: (265.1.1 lp-pqm)
  • Revision ID: launchpad@pqm.canonical.com-20110920132415-uxxt8vjsfxgu7hcs
[rs=jelmer] Update to r1387.

Show diffs side-by-side

added added

removed removed

Lines of Context:
98
98
 
99
99
    def allkeys(self):
100
100
        keys = set()
101
 
        if self.transport.has("HEAD"):
 
101
        try:
 
102
            self.transport.get_bytes("HEAD")
 
103
        except NoSuchFile:
 
104
            pass
 
105
        else:
102
106
            keys.add("HEAD")
103
107
        try:
104
108
            iter_files = list(self.transport.clone("refs").iter_files_recursive())
284
288
 
285
289
class TransportRepo(BaseRepo):
286
290
 
287
 
    def __init__(self, transport):
 
291
    def __init__(self, transport, bare):
288
292
        self.transport = transport
289
 
        try:
290
 
            if self.transport.has(".git/%s" % OBJECTDIR):
291
 
                self.bare = False
292
 
                self._controltransport = self.transport.clone('.git')
293
 
            elif self.transport.has_any(["info/refs", OBJECTDIR, REFSDIR]):
294
 
                self.bare = True
295
 
                self._controltransport = self.transport
296
 
            else:
297
 
                raise NotGitRepository(self.transport)
298
 
        except NoSuchFile:
299
 
            raise NotGitRepository(self.transport)
 
293
        self.bare = bare
 
294
        if self.bare:
 
295
            self._controltransport = self.transport
 
296
        else:
 
297
            self._controltransport = self.transport.clone('.git')
300
298
        object_store = TransportObjectStore(
301
299
            self._controltransport.clone(OBJECTDIR))
302
300
        super(TransportRepo, self).__init__(object_store, 
351
349
            control_transport.mkdir("/".join(d))
352
350
        control_transport.mkdir(OBJECTDIR)
353
351
        TransportObjectStore.init(control_transport.clone(OBJECTDIR))
354
 
        ret = cls(transport)
 
352
        ret = cls(transport, bare)
355
353
        ret.refs.set_symbolic_ref("HEAD", "refs/heads/master")
356
354
        ret._init_files(bare)
357
355
        return ret