Show More
@@ -24,6 +24,7 b' from tempfile import mktemp' | |||
|
24 | 24 | |
|
25 | 25 | from svn.core import SubversionException, Pool |
|
26 | 26 | import svn.ra |
|
27 | import svn.client | |
|
27 | 28 | import svn.core |
|
28 | 29 | |
|
29 | 30 | # Some older versions of the Python bindings need to be |
@@ -48,21 +49,6 b' def _create_auth_baton(pool):' | |||
|
48 | 49 | ] |
|
49 | 50 | return svn.core.svn_auth_open(providers, pool) |
|
50 | 51 | |
|
51 | ||
|
52 | # # The SVN libraries don't like trailing slashes... | |
|
53 | # return url.rstrip('/') | |
|
54 | ||
|
55 | ||
|
56 | class SvnRaCallbacks(svn.ra.callbacks2_t): | |
|
57 | """Remote access callbacks implementation for bzr-svn.""" | |
|
58 | def __init__(self, pool): | |
|
59 | svn.ra.callbacks2_t.__init__(self) | |
|
60 | self.auth_baton = _create_auth_baton(pool) | |
|
61 | self.pool = pool | |
|
62 | ||
|
63 | def open_tmp_file(self, pool): | |
|
64 | return mktemp(prefix='tailor-svn') | |
|
65 | ||
|
66 | 52 | class NotBranchError(SubversionException): |
|
67 | 53 | pass |
|
68 | 54 | |
@@ -73,25 +59,30 b' class SvnRaTransport(object):' | |||
|
73 | 59 | def __init__(self, url="", ra=None): |
|
74 | 60 | self.pool = Pool() |
|
75 | 61 | self.svn_url = url |
|
62 | self.username = '' | |
|
63 | self.password = '' | |
|
76 | 64 | |
|
77 | 65 | # Only Subversion 1.4 has reparent() |
|
78 | 66 | if ra is None or not hasattr(svn.ra, 'reparent'): |
|
79 |
self.c |
|
|
67 | self.client = svn.client.create_context(self.pool) | |
|
68 | ab = _create_auth_baton(self.pool) | |
|
69 | if False: | |
|
70 | svn.core.svn_auth_set_parameter( | |
|
71 | ab, svn.core.SVN_AUTH_PARAM_DEFAULT_USERNAME, self.username) | |
|
72 | svn.core.svn_auth_set_parameter( | |
|
73 | ab, svn.core.SVN_AUTH_PARAM_DEFAULT_PASSWORD, self.password) | |
|
74 | self.client.auth_baton = ab | |
|
75 | self.client.config = svn_config | |
|
80 | 76 | try: |
|
81 |
|
|
|
82 | try: # Older SVN bindings | |
|
83 | self.ra = svn.ra.open2(self.svn_url.encode('utf8'), self.callbacks, None, svn_config, None) | |
|
84 | except TypeError, e: | |
|
85 | self.ra = svn.ra.open2(self.svn_url.encode('utf8'), self.callbacks, svn_config, None) | |
|
77 | self.ra = svn.client.open_ra_session( | |
|
78 | self.svn_url.encode('utf8'), | |
|
79 | self.client, self.pool) | |
|
86 | 80 | except SubversionException, (_, num): |
|
87 |
if num |
|
|
88 | raise NotBranchError(url) | |
|
89 |
|
|
|
90 | raise NotBranchError(url) | |
|
91 | if num == svn.core.SVN_ERR_BAD_URL: | |
|
81 | if num in (svn.core.SVN_ERR_RA_ILLEGAL_URL, | |
|
82 | svn.core.SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED, | |
|
83 | svn.core.SVN_ERR_BAD_URL): | |
|
92 | 84 | raise NotBranchError(url) |
|
93 | 85 | raise |
|
94 | ||
|
95 | 86 | else: |
|
96 | 87 | self.ra = ra |
|
97 | 88 | svn.ra.reparent(self.ra, self.svn_url.encode('utf8')) |
General Comments 0
You need to be logged in to leave comments.
Login now