1 # Foreign branch support for Subversion
2 # Copyright (C) 2006 Jelmer Vernooij <jelmer@samba.org>
4 # Published under the GNU GPL
6 from bzrlib.repository import Repository
7 from bzrlib.lockable_files import LockableFiles, TransportLock
10 from branch import auth_baton
13 Provides a simplified interface to a Subversion repository
14 by using the RA (remote access) API from subversion
16 class SvnRepository(Repository):
17 def __init__(self, bzrdir, url):
19 _revision_store = None
22 control_files = LockableFiles(bzrdir.transport, '', TransportLock)
23 Repository.__init__(self, 'SVN Repository', bzrdir, control_files, _revision_store, control_store, text_store)
25 self.pool = svn.core.svn_pool_create(None)
27 self.client = svn.client.svn_client_create_context(self.pool)
28 self.client.config = svn.core.svn_config_get_config(None)
29 self.client.auth_baton = auth_baton
31 self.uuid = svn.client.uuid_from_url(self.url.encode('utf8'), self.client, self.pool)
34 svn.core.svn_pool_destroy(self.pool)