Rev 965: Extend wc pyrex a bit. in file:///data/jelmer/bzr-svn/pyrex/
Jelmer Vernooij
jelmer at samba.org
Thu Mar 13 19:22:31 GMT 2008
At file:///data/jelmer/bzr-svn/pyrex/
------------------------------------------------------------
revno: 965
revision-id:jelmer at samba.org-20080313192229-mx5g79mkrq57fhrx
parent: jelmer at samba.org-20080313174312-k5yhzqrgmrd141oo
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Thu 2008-03-13 20:22:29 +0100
message:
Extend wc pyrex a bit.
modified:
.bzrignore bzrignore-20060516185138-862ea098064007af
ra.pyx ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
wc.pyx wc.pyx-20080313142018-10l8l23vha2j9e6b-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file '.bzrignore'
--- a/.bzrignore 2008-03-13 14:10:31 +0000
+++ b/.bzrignore 2008-03-13 19:22:29 +0000
@@ -5,3 +5,4 @@
apidocs
.plugins
ra.c
+wc.c
=== modified file 'ra.pyx'
--- a/ra.pyx 2008-03-13 17:43:12 +0000
+++ b/ra.pyx 2008-03-13 19:22:29 +0000
@@ -72,6 +72,50 @@
cdef extern from "svn_auth.h":
ctypedef struct svn_auth_baton_t
+ void svn_auth_open(svn_auth_baton_t **auth_baton,
+ apr_array_header_t *providers,
+ apr_pool_t *pool)
+ void svn_auth_set_parameter(svn_auth_baton_t *auth_baton,
+ char *name, void *value)
+ void * svn_auth_get_parameter(svn_auth_baton_t *auth_baton,
+ char *name)
+
+ ctypedef struct svn_auth_provider_t:
+ char *cred_kind
+ svn_error_t * (*first_credentials)(void **credentials,
+ void **iter_baton,
+ void *provider_baton,
+ apr_hash_t *parameters,
+ char *realmstring,
+ apr_pool_t *pool)
+ svn_error_t * (*next_credentials)(void **credentials,
+ void *iter_baton,
+ void *provider_baton,
+ apr_hash_t *parameters,
+ char *realmstring,
+ apr_pool_t *pool)
+
+ svn_error_t * (*save_credentials)(int *saved,
+ void *credentials,
+ void *provider_baton,
+ apr_hash_t *parameters,
+ char *realmstring,
+ apr_pool_t *pool)
+
+ ctypedef struct svn_auth_provider_object_t:
+ svn_auth_provider_t *vtable
+ void *provider_baton
+
+ ctypedef struct svn_auth_cred_simple_t:
+ char *username
+ char *password
+ int may_save
+
+ ctypedef svn_error_t *(*svn_auth_simple_prompt_func_t) (svn_auth_cred_simple_t **cred, void *baton, char *realm, char *username, int may_save, apr_pool_t *pool)
+
+ void svn_auth_get_simple_prompt_provider(
+ svn_auth_provider_object_t **provider, svn_auth_simple_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
+
cdef extern from "svn_string.h":
ctypedef struct svn_string_t:
@@ -178,7 +222,10 @@
while idx:
# FIXME: apr_hash_this(idx, key, val
idx = apr_hash_next(idx)
- baton(py_changed_paths, revision, author, date, message)
+ baton(py_changed_paths, revision, {
+ SVN_PROP_REVISION_LOG: message,
+ SVN_PROP_REVISION_AUTHOR: author,
+ SVN_PROP_REVISION_DATE: date})
cdef extern from "svn_ra.h":
ctypedef struct svn_lock_t
@@ -442,8 +489,9 @@
apr_pool_destroy(temp_pool)
return latest_revnum
- def get_log(self, paths, start, end, callback, limit=0,
- discover_changed_paths=True, strict_node_history=True):
+ def get_log(self, callback, paths, start, end, limit=0,
+ discover_changed_paths=True, strict_node_history=True,
+ revprops=[SVN_PROP_REVISION_LOG,SVN_PROP_REVISION_AUTHOR,SVN_PROP_REVISION_DATE]):
cdef apr_array_header_t *paths_array
cdef apr_pool_t *temp_pool
_check_error(svn_ra_get_log(self.ra, paths_array, start, end, limit,
@@ -601,3 +649,5 @@
return "%s(%r)" % (self.__class__.__name__, self.url)
SVN_PROP_REVISION_LOG = "svn:log"
+SVN_PROP_REVISION_AUTHOR = "svn:author"
+SVN_PROP_REVISION_DATE = "svn:date"
=== modified file 'transport.py'
--- a/transport.py 2008-03-13 17:43:12 +0000
+++ b/transport.py 2008-03-13 19:22:29 +0000
@@ -265,12 +265,6 @@
self.mutter("svn get-latest-revnum")
return self._ra.get_latest_revnum()
- def _make_editor(self, editor, pool=None):
- edit, edit_baton = svn.delta.make_editor(editor, pool)
- self._edit = edit
- self._edit_baton = edit_baton
- return self._edit, self._edit_baton
-
@convert_svn_error
def do_switch(self, switch_rev, recurse, switch_url, editor, pool=None):
self._open_real_transport()
@@ -281,9 +275,9 @@
def get_log(self, path, from_revnum, to_revnum, limit, discover_changed_paths,
strict_node_history, revprops, rcvr):
self.mutter('svn log %r:%r %r' % (from_revnum, to_revnum, path))
- return self._ra.get_log([self._request_path(path)],
+ return self._ra.get_log(rcvr, [self._request_path(path)],
from_revnum, to_revnum, limit, discover_changed_paths,
- strict_node_history, revprops, rcvr_convert)
+ strict_node_history, revprops)
def _open_real_transport(self):
if self._backing_url != self.svn_url:
=== modified file 'wc.pyx'
--- a/wc.pyx 2008-03-13 14:23:55 +0000
+++ b/wc.pyx 2008-03-13 19:22:29 +0000
@@ -15,21 +15,55 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
cdef extern from "svn_version.h":
- ctypedef struct svn_version_t:
- int major
- int minor
- int patch
- char *tag
-
+ ctypedef struct svn_version_t:
+ int major
+ int minor
+ int patch
+ char *tag
+
+
+cdef extern from "svn_types.h":
+ ctypedef int svn_boolean_t
+ ctypedef svn_error_t *(*svn_cancel_func_t)(cancel_baton)
cdef extern from "svn_wc.h":
- svn_version_t *svn_wc_version()
+ ctypedef struct svn_wc_adm_access_t
+ svn_version_t *svn_wc_version()
+ svn_error_t *svn_wc_adm_open3(svn_wc_adm_access_t **adm_access,
+ svn_wc_adm_access_t *associated,
+ char *path,
+ svn_boolean_t write_lock,
+ int depth,
+ svn_cancel_func_t cancel_func,
+ cancel_baton,
+ apr_pool_t *pool)
+ svn_error_t *svn_wc_adm_close(svn_wc_adm_access_t *adm_access)
+ char *svn_wc_adm_access_path(svn_wc_adm_access_t *adm_access)
+ svn_boolean_t svn_wc_adm_locked(svn_wc_adm_access_t *adm_access)
def version():
- """Get libsvn_wc version information.
-
- :return: tuple with major, minor, patch version number and tag.
- """
- return (svn_ra_version().major, svn_ra_version().minor,
- svn_ra_version().minor, svn_ra_version().tag)
+ """Get libsvn_wc version information.
+
+ :return: tuple with major, minor, patch version number and tag.
+ """
+ return (svn_ra_version().major, svn_ra_version().minor,
+ svn_ra_version().minor, svn_ra_version().tag)
+
+cdef class WorkingCopy:
+ cdef svn_wc_adm_access_t *adm
+ def __init__(self, path, associated=None, write_lock=False, depth=0,
+ cancel_func=None):
+ self.pool = Pool(NULL)
+ _check_error(svn_wc_adm_open3(&self.adm, associated, path,
+ write_lock, depth, py_cancel_func, cancel_func,
+ self.pool))
+
+ def access_path(self):
+ return svn_wc_adm_access_path(self.adm)
+
+ def locked(self):
+ return svn_wc_adm_locked(self.adm)
+
+ def __dealloc__(self):
+ svn_wc_adm_close(self.adm)
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-03-12 15:01:25 +0000
+++ b/workingtree.py 2008-03-13 19:22:29 +0000
@@ -52,7 +52,7 @@
import urllib
import svn.core, svn.wc
-from svn.core import SubversionException, Pool
+from svn.core import SubversionException, Pool, svn_time_to_cstring
from errors import NoCheckoutSupport
from format import get_rich_root_format
@@ -381,7 +381,7 @@
svn.wc.process_committed2(self.abspath(path).rstrip("/"), wc,
False, revnum,
- svn.core.svn_time_to_cstring(newrev.timestamp),
+ svn_time_to_cstring(newrev.timestamp),
newrev.committer, None, False)
if newrevtree.inventory[id].kind != 'directory':
More information about the bazaar-commits
mailing list