Rev 1025: Wrap svn_ra_get_file_revs(). in file:///data/jelmer/bzr-svn/pyrex/

Jelmer Vernooij jelmer at samba.org
Fri Mar 21 15:40:05 GMT 2008


At file:///data/jelmer/bzr-svn/pyrex/

------------------------------------------------------------
revno: 1025
revision-id: jelmer at samba.org-20080321154004-mu7emnevmvklj3lv
parent: jelmer at samba.org-20080321153257-efj301q543pyo9cz
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Fri 2008-03-21 16:40:04 +0100
message:
  Wrap svn_ra_get_file_revs().
modified:
  ra.pyx                         ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
=== modified file 'ra.pyx'
--- a/ra.pyx	2008-03-21 15:32:57 +0000
+++ b/ra.pyx	2008-03-21 15:40:04 +0000
@@ -224,6 +224,15 @@
                                   apr_array_header_t *location_revisions,
                                   apr_pool_t *pool)
 
+    ctypedef svn_error_t *(*svn_ra_file_rev_handler_t) (void *baton, char *path, svn_revnum_t rev, apr_hash_t *rev_props, svn_txdelta_window_handler_t *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool)
+
+    svn_error_t *svn_ra_get_file_revs(svn_ra_session_t *session,
+                                  char *path,
+                                  svn_revnum_t start,
+                                  svn_revnum_t end,
+                                  svn_ra_file_rev_handler_t handler,
+                                  void *handler_baton,
+                                  apr_pool_t *pool)
 
 cdef pyify_lock(svn_lock_t *lock):
     return None # FIXME
@@ -595,6 +604,12 @@
 
 cdef class Auth
 
+cdef svn_error_t *py_file_rev_handler(void *baton, char *path, svn_revnum_t rev, apr_hash_t *rev_props, svn_txdelta_window_handler_t *delta_handler, void **delta_baton, apr_array_header_t *prop_diffs, apr_pool_t *pool):
+    fn = <object>baton
+    fn(path, rev, prop_hash_to_dict(rev_props))
+    return NULL
+
+
 cdef class RemoteAccess:
     """Connection to a remote Subversion repository."""
     cdef svn_ra_session_t *ra
@@ -893,6 +908,15 @@
             idx = apr_hash_next(idx)
         apr_pool_destroy(temp_pool)
         return ret
+    
+    def get_file_revs(self, char *path, svn_revnum_t start, svn_revnum_t end,
+                      file_rev_handler):
+        cdef apr_pool_t *temp_pool
+        temp_pool = Pool(self.pool)
+        check_error(svn_ra_get_file_revs(self.ra, path, start, end, 
+                    py_file_rev_handler, <void *>file_rev_handler, 
+                    temp_pool))
+        apr_pool_destroy(temp_pool)
 
     def __dealloc__(self):
         if self.pool != NULL:




More information about the bazaar-commits mailing list