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