Rev 995: Wrap ra reporter. in file:///data/jelmer/bzr-svn/pyrex/
Jelmer Vernooij
jelmer at samba.org
Sun Mar 16 14:51:32 GMT 2008
At file:///data/jelmer/bzr-svn/pyrex/
------------------------------------------------------------
revno: 995
revision-id:jelmer at samba.org-20080316145130-da5gsbilkecxu6cg
parent: jelmer at samba.org-20080316141723-gfcom3f4nvgh5ltk
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Sun 2008-03-16 15:51:30 +0100
message:
Wrap ra reporter.
added:
ra.pxd ra.pxd-20080316145122-rpus5mpg799ld67s-1
modified:
NEWS news-20061231030336-h9fhq245ie0de8bs-1
logwalker.py logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
ra.pyx ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
wc.pyx wc.pyx-20080313142018-10l8l23vha2j9e6b-1
=== modified file 'NEWS'
--- a/NEWS 2008-03-12 19:05:08 +0000
+++ b/NEWS 2008-03-16 14:51:30 +0000
@@ -1,5 +1,11 @@
bzr-svn 0.4.9 UNRELEASED
+ CHANGES
+
+ * The Python-Subversion bindings are no longer necessary. Instead,
+ bzr-svn now comes with its own Python bindings for the Subversion
+ libraries.
+
FEATURES
* Set revision properties when possible.
=== modified file 'logwalker.py'
--- a/logwalker.py 2008-03-16 06:11:05 +0000
+++ b/logwalker.py 2008-03-16 14:51:30 +0000
@@ -248,7 +248,40 @@
return []
assert ft == core.NODE_DIR
- class TreeLister(svn.delta.Editor):
+ class DirLister:
+ def __init__(self, path, files):
+ self.files = files
+ self.path = path
+
+ def change_prop(self, name, value):
+ pass
+
+ def add_directory(self, path):
+ """See Editor.add_directory()."""
+ self.files.append(urlutils.join(self.base, path))
+ return DirLister(path, self.files)
+
+ def add_file(self, path):
+ self.files.append(urlutils.join(self.base, path))
+ return FileLister()
+
+ def close(self, id):
+ pass
+
+ class FileLister:
+ def __init__(self):
+ pass
+
+ def change_prop(self, name, value):
+ pass
+
+ def apply_textdelta(self, base_checksum=None):
+ pass
+
+ def close(self, checksum):
+ pass
+
+ class TreeLister:
def __init__(self, base):
self.files = []
self.base = base
@@ -257,39 +290,16 @@
"""See Editor.set_target_revision()."""
pass
- def open_root(self, revnum, baton):
+ def open_root(self, revnum):
"""See Editor.open_root()."""
- return path
-
- def add_directory(self, path, parent_baton, copyfrom_path, copyfrom_revnum):
- """See Editor.add_directory()."""
- self.files.append(urlutils.join(self.base, path))
- return path
-
- def change_dir_prop(self, id, name, value):
- pass
-
- def change_file_prop(self, id, name, value):
- pass
-
- def add_file(self, path, parent_id, copyfrom_path, copyfrom_revnum, baton):
- self.files.append(urlutils.join(self.base, path))
- return path
-
- def close_dir(self, id):
- pass
-
- def close_file(self, path, checksum):
- pass
-
- def close_edit(self):
- pass
-
- def abort_edit(self):
- pass
-
- def apply_textdelta(self, file_id, base_checksum):
- pass
+ return DirLister(path, self.files)
+
+ def close(self, checksum=None):
+ pass
+
+ def abort(self):
+ pass
+
editor = TreeLister(path)
old_base = transport.base
try:
=== added file 'ra.pxd'
--- a/ra.pxd 1970-01-01 00:00:00 +0000
+++ b/ra.pxd 2008-03-16 14:51:30 +0000
@@ -0,0 +1,43 @@
+# Copyright (C) 2008 Jelmer Vernooij <jelmer at samba.org>
+# vim: ft=pyrex
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+from types cimport svn_error_t
+from apr cimport apr_pool_t
+
+cdef extern from "svn_ra.h":
+ ctypedef struct svn_ra_reporter2_t:
+ svn_error_t *(*set_path)(void *report_baton,
+ char *path,
+ long revision,
+ int start_empty,
+ char *lock_token,
+ apr_pool_t *pool) except *
+
+ svn_error_t *(*delete_path)(void *report_baton,
+ char *path, apr_pool_t *pool) except *
+
+ svn_error_t *(*link_path)(void *report_baton,
+ char *path,
+ char *url,
+ long revision,
+ int start_empty,
+ char *lock_token,
+ apr_pool_t *pool) except *
+
+ svn_error_t *(*finish_report)(void *report_baton, apr_pool_t *pool) except *
+
+ svn_error_t *(*abort_report)(void *report_baton, apr_pool_t *pool) except *
=== modified file 'ra.pyx'
--- a/ra.pyx 2008-03-16 14:17:23 +0000
+++ b/ra.pyx 2008-03-16 14:51:30 +0000
@@ -138,29 +138,6 @@
cdef extern from "svn_ra.h":
svn_version_t *svn_ra_version()
- ctypedef struct svn_ra_reporter2_t:
- svn_error_t *(*set_path)(void *report_baton,
- char *path,
- long revision,
- int start_empty,
- char *lock_token,
- apr_pool_t *pool) except *
-
- svn_error_t *(*delete_path)(void *report_baton,
- char *path, apr_pool_t *pool) except *
-
- svn_error_t *(*link_path)(void *report_baton,
- char *path,
- char *url,
- long revision,
- int start_empty,
- char *lock_token,
- apr_pool_t *pool) except *
-
- svn_error_t *(*finish_report)(void *report_baton, apr_pool_t *pool) except *
-
- svn_error_t *(*abort_report)(void *report_baton, apr_pool_t *pool) except *
-
ctypedef void (*svn_ra_progress_notify_func_t)(apr_off_t progress,
apr_off_t total, void *baton, apr_pool_t *pool) except *
@@ -1005,3 +982,4 @@
check_error(svn_txdelta_send_stream(new_py_stream(pool, stream), handler.txdelta, handler.txbaton, <unsigned char *>digest, pool))
apr_pool_destroy(pool)
return PyString_FromStringAndSize(<char *>digest, 16)
+
=== modified file 'wc.pyx'
--- a/wc.pyx 2008-03-16 14:17:23 +0000
+++ b/wc.pyx 2008-03-16 14:51:30 +0000
@@ -16,6 +16,7 @@
from apr cimport apr_pool_t, apr_initialize, apr_hash_t, apr_pool_destroy, apr_time_t, apr_hash_first, apr_hash_next, apr_hash_this, apr_hash_index_t, apr_array_header_t
from types cimport svn_error_t, svn_version_t, svn_boolean_t, svn_cancel_func_t , svn_string_t, svn_string_ncreate, svn_node_kind_t, svn_revnum_t, svn_prop_t, svn_lock_t
+from ra cimport svn_ra_reporter2_t
from core cimport check_error, Pool, py_cancel_func
@@ -211,6 +212,22 @@
svn_wc_notify_func2_t notify_func,
void *notify_baton,
apr_pool_t *pool)
+
+ ctypedef struct svn_wc_traversal_info_t
+
+ svn_error_t *svn_wc_crawl_revisions2(char *path,
+ svn_wc_adm_access_t *adm_access,
+ svn_ra_reporter2_t *reporter,
+ void *report_baton,
+ svn_boolean_t restore_files,
+ svn_boolean_t recurse,
+ svn_boolean_t use_commit_times,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ svn_wc_traversal_info_t *traversal_info,
+ apr_pool_t *pool)
+
+ svn_wc_traversal_info_t *svn_wc_init_traversal_info(apr_pool_t *pool)
def version():
"""Get libsvn_wc version information.
@@ -392,6 +409,20 @@
temp_pool))
apr_pool_destroy(temp_pool)
+ def crawl_revisions(self, path, reporter, restore_files=True,
+ recurse=True, use_commit_times=True,
+ notify_func=None):
+ cdef apr_pool_t *temp_pool
+ cdef svn_wc_traversal_info_t *traversal_info
+ temp_pool = Pool(self.pool)
+ traversal_info = svn_wc_init_traversal_info(temp_pool)
+ check_error(svn_wc_crawl_revisions2(path, self.adm,
+ &py_ra_reporter, <void *>reporter,
+ restore_files, recurse, use_commit_times,
+ py_wc_notify_func, <void *>notify_func,
+ traversal_info, temp_pool))
+ apr_pool_destroy(temp_pool)
+
def close(self):
if self.adm != NULL:
svn_wc_adm_close(self.adm)
@@ -454,3 +485,36 @@
SCHEDULE_ADD = 1
SCHEDULE_DELETE = 2
SCHEDULE_REPLACE = 3
+
+
+cdef svn_error_t *py_ra_report_set_path(void *baton, char *path, long revision, int start_empty, char *lock_token, apr_pool_t *pool) except *:
+ self = <object>baton
+ self.set_path(path, revision, start_empty, lock_token)
+ return NULL
+
+cdef svn_error_t *py_ra_report_delete_path(void *baton, char *path, apr_pool_t *pool) except *:
+ self = <object>baton
+ self.delete_path(path)
+ return NULL
+
+cdef svn_error_t *py_ra_report_link_path(void *report_baton, char *path, char *url, long revision, int start_empty, char *lock_token, apr_pool_t *pool) except *:
+ self = <object>report_baton
+ self.link_path(path, url, revision, start_empty, lock_token)
+ return NULL
+
+cdef svn_error_t *py_ra_report_finish(void *baton, apr_pool_t *pool) except *:
+ self = <object>baton
+ self.finish()
+ return NULL
+
+cdef svn_error_t *py_ra_report_abort(void *baton, apr_pool_t *pool) except *:
+ self = <object>baton
+ self.abort()
+ return NULL
+
+cdef svn_ra_reporter2_t py_ra_reporter
+py_ra_reporter.finish_report = py_ra_report_finish
+py_ra_reporter.abort_report = py_ra_report_abort
+py_ra_reporter.link_path = py_ra_report_link_path
+py_ra_reporter.delete_path = py_ra_report_delete_path
+py_ra_reporter.set_path = py_ra_report_set_path
More information about the bazaar-commits
mailing list