Rev 465: Merge pyrex. in file:///data/jelmer/bzr-svn/native/

Jelmer Vernooij jelmer at samba.org
Fri Mar 21 04:25:00 GMT 2008


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

------------------------------------------------------------
revno: 465
revision-id: jelmer at samba.org-20080321042500-31rm3h0ouaqwkl6u
parent: jelmer at samba.org-20080319235052-pg0anzu0j319iur9
parent: jelmer at samba.org-20080321040825-hicn3boefkr70xrb
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: native
timestamp: Fri 2008-03-21 05:25:00 +0100
message:
  Merge pyrex.
modified:
  wc.pyx                         wc.pyx-20080313142018-10l8l23vha2j9e6b-1
  workingtree.py                 workingtree.py-20060306120941-b083cb0fdd4a69de
    ------------------------------------------------------------
    revno: 457.1.561
    revision-id: jelmer at samba.org-20080321040825-hicn3boefkr70xrb
    parent: jelmer at samba.org-20080321040128-415ktwbwm966v8yo
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: pyrex
    timestamp: Fri 2008-03-21 05:08:25 +0100
    message:
      wrap walk entries function.
    modified:
      wc.pyx                         wc.pyx-20080313142018-10l8l23vha2j9e6b-1
    ------------------------------------------------------------
    revno: 457.1.560
    revision-id: jelmer at samba.org-20080321040128-415ktwbwm966v8yo
    parent: jelmer at samba.org-20080319224647-52s9u285ylc2qnz3
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: pyrex
    timestamp: Fri 2008-03-21 05:01:28 +0100
    message:
      Include working copy version number.
    modified:
      wc.pyx                         wc.pyx-20080313142018-10l8l23vha2j9e6b-1
      workingtree.py                 workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'wc.pyx'
--- a/wc.pyx	2008-03-18 23:48:01 +0000
+++ b/wc.pyx	2008-03-21 04:08:25 +0000
@@ -67,6 +67,7 @@
         char *cachable_props
         char *present_props
 
+    svn_error_t *svn_wc_check_wc(char *path, int *wc_format, apr_pool_t *pool)
 
     svn_version_t *svn_wc_version()
     svn_error_t *svn_wc_adm_open3(svn_wc_adm_access_t **adm_access,
@@ -268,7 +269,21 @@
                                          void *baton,
                                          char **tempfile,
                                          apr_pool_t *pool)
+    ctypedef struct svn_wc_entry_callbacks_t:
+        svn_error_t *(*found_entry)(char *path,
+                              svn_wc_entry_t *entry,
+                              void *walk_baton,
+                              apr_pool_t *pool)
 
+    svn_error_t *svn_wc_walk_entries2(char *path,
+                                  svn_wc_adm_access_t *adm_access,
+                                  svn_wc_entry_callbacks_t 
+                                  *walk_callbacks,
+                                  void *walk_baton,
+                                  svn_boolean_t show_hidden,
+                                  svn_cancel_func_t cancel_func,
+                                  void *cancel_baton,
+                                  apr_pool_t *pool)
 
 def version():
     """Get libsvn_wc version information.
@@ -279,6 +294,15 @@
     ver = svn_wc_version()
     return (ver.major, ver.minor, ver.minor, ver.tag)
 
+cdef svn_error_t *py_wc_found_entry(char *path, svn_wc_entry_t *entry, void *walk_baton, apr_pool_t *pool):
+    fn = <object>walk_baton
+    # FIXME: entry
+    fn(path)
+    return NULL
+
+
+cdef svn_wc_entry_callbacks_t py_wc_entry_callbacks
+py_wc_entry_callbacks.found_entry = py_wc_found_entry
 
 cdef void py_wc_notify_func(void *baton, svn_wc_notify_t *notify, apr_pool_t *pool):
     pass # FIXME
@@ -382,6 +406,15 @@
         apr_pool_destroy(temp_pool)
         return py_entries
 
+    def walk_entries(self, char *path, callbacks, int show_hidden=False, cancel_func=None):
+        cdef apr_pool_t *temp_pool
+        temp_pool = Pool(self.pool)
+        check_error(svn_wc_walk_entries2(path, self.adm, 
+                    &py_wc_entry_callbacks, <void *>callbacks,
+                    show_hidden, py_cancel_func, <void *>cancel_func,
+                    temp_pool))
+        apr_pool_destroy(temp_pool)
+
     def entry(self, char *path, int show_hidden=False):
         cdef apr_pool_t *temp_pool
         cdef svn_wc_entry_t *entry
@@ -618,3 +651,10 @@
     check_error(svn_wc_ensure_adm2(path, uuid, url, c_repos, rev, pool))
     apr_pool_destroy(pool)
 
+def check_wc(char *path):
+    cdef apr_pool_t *pool
+    cdef int wc_format
+    pool = Pool(NULL)
+    check_error(svn_wc_check_wc(path, &wc_format, pool))
+    apr_pool_destroy(pool)
+    return wc_format

=== modified file 'workingtree.py'
--- a/workingtree.py	2008-03-19 23:50:52 +0000
+++ b/workingtree.py	2008-03-21 04:25:00 +0000
@@ -61,7 +61,8 @@
 class SvnWorkingTree(WorkingTree):
     """WorkingTree implementation that uses a Subversion Working Copy for storage."""
     def __init__(self, bzrdir, local_path, branch):
-        self._format = SvnWorkingTreeFormat()
+        version = wc.check_wc(local_path)
+        self._format = SvnWorkingTreeFormat(version)
         self.basedir = local_path
         self.bzrdir = bzrdir
         self._branch = branch
@@ -713,16 +714,19 @@
 
 class SvnWorkingTreeFormat(WorkingTreeFormat):
     """Subversion working copy format."""
+    def __init__(self, version):
+        self.version = version
+
     def __get_matchingbzrdir(self):
         return SvnWorkingTreeDirFormat()
 
     _matchingbzrdir = property(__get_matchingbzrdir)
 
     def get_format_description(self):
-        return "Subversion Working Copy"
+        return "Subversion Working Copy Version %d" % self.version
 
     def get_format_string(self):
-        return "Subversion Working Copy Format"
+        raise NotImplementedError
 
     def initialize(self, a_bzrdir, revision_id=None):
         raise NotImplementedError(self.initialize)




More information about the bazaar-commits mailing list