Start moving functionality to SvnRepository
[jelmer/subvertpy.git] / repository.py
1 # Foreign branch support for Subversion
2 # Copyright (C) 2006 Jelmer Vernooij <jelmer@samba.org>
3 #
4 # Published under the GNU GPL
5
6 from bzrlib.repository import Repository
7 from bzrlib.lockable_files import LockableFiles, TransportLock
8 import svn.core
9 import bzrlib
10 from branch import auth_baton
11
12 """
13 Provides a simplified interface to a Subversion repository 
14 by using the RA (remote access) API from subversion
15 """
16 class SvnRepository(Repository):
17     def __init__(self, bzrdir, url):
18         self.url = url
19         _revision_store = None
20         control_store = None
21         text_store = None
22         control_files = LockableFiles(bzrdir.transport, '', TransportLock)
23         Repository.__init__(self, 'SVN Repository', bzrdir, control_files, _revision_store, control_store, text_store)
24
25         self.pool = svn.core.svn_pool_create(None)
26
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
30
31         self.uuid = svn.client.uuid_from_url(self.url.encode('utf8'), self.client, self.pool)
32
33     def __del__(self):
34         svn.core.svn_pool_destroy(self.pool)