Rev 1005: Fix more crash bugs. in file:///data/jelmer/bzr-svn/pyrex/
Jelmer Vernooij
jelmer at samba.org
Tue Mar 18 02:07:17 GMT 2008
At file:///data/jelmer/bzr-svn/pyrex/
------------------------------------------------------------
revno: 1005
revision-id:jelmer at samba.org-20080318020716-zaxpm72bkxamv93x
parent: jelmer at samba.org-20080318020709-ew5omyhg0l0dec3h
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Tue 2008-03-18 03:07:16 +0100
message:
Fix more crash bugs.
modified:
client.pyx client.pyx-20080313235339-wbyjbw2namuiql8f-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
workingtree.py workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'client.pyx'
--- a/client.pyx 2008-03-16 17:57:35 +0000
+++ b/client.pyx 2008-03-18 02:07:16 +0000
@@ -15,7 +15,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from apr cimport apr_initialize, apr_hash_t, apr_time_t
-from apr cimport apr_array_header_t, apr_array_make, apr_array_push
+from apr cimport apr_array_header_t, apr_array_make, apr_array_push, apr_array_pop
from apr cimport apr_pool_t, apr_pool_destroy
from types cimport svn_error_t, svn_cancel_func_t, svn_auth_baton_t, svn_revnum_t, svn_boolean_t, svn_commit_info_t, svn_string_t, svn_log_message_receiver_t
from core cimport Pool, check_error, string_list_to_apr_array, py_svn_log_wrapper, prop_hash_to_dict
@@ -298,11 +298,17 @@
def update(self, paths, rev=None, recurse=True, ignore_externals=False):
cdef apr_array_header_t *result_revs
cdef svn_opt_revision_t c_rev
+ cdef svn_revnum_t *ret_rev
to_opt_revision(rev, &c_rev)
check_error(svn_client_update2(&result_revs,
string_list_to_apr_array(self.pool, paths), &c_rev,
recurse, ignore_externals, self.client, self.pool))
- # FIXME: Convert and return result_revs
+ ret = []
+ ret_rev = <svn_revnum_t *>apr_array_pop(result_revs)
+ while ret_rev != NULL:
+ ret.append(ret_rev[0])
+ ret_rev = <svn_revnum_t *>apr_array_pop(result_revs)
+ return ret
def revprop_get(self,propname, propval, url, rev=None):
cdef svn_revnum_t set_rev
=== modified file 'transport.py'
--- a/transport.py 2008-03-16 12:26:31 +0000
+++ b/transport.py 2008-03-18 02:07:16 +0000
@@ -276,10 +276,10 @@
raise
@convert_svn_error
- def replay(self, revision, low_water_mark, send_deltas, editor):
+ def replay(self, revision, low_water_mark, editor, send_deltas=True):
self._open_real_transport()
self.mutter('svn replay -r%r:%r' % (low_water_mark, revision))
- self._ra.replay(revision, low_water_mark, send_deltas, editor)
+ self._ra.replay(revision, low_water_mark, editor, send_deltas)
@convert_svn_error
def do_update(self, revnum, recurse, editor):
=== modified file 'tree.py'
--- a/tree.py 2008-03-16 17:57:35 +0000
+++ b/tree.py 2008-03-18 02:07:16 +0000
@@ -58,8 +58,6 @@
self.tree = tree
self.repository = tree._repository
self.last_revnum = {}
- self.dir_revnum = {}
- self.dir_ignores = {}
def set_target_revision(self, revnum):
self.revnum = revnum
@@ -81,7 +79,6 @@
def __init__(self, tree, file_id):
self.tree = tree
self.file_id = file_id
- self.dir_ignores = None
def add_directory(self, path, copyfrom_path=None, copyfrom_revnum=-1):
path = path.decode("utf-8")
@@ -96,11 +93,7 @@
SVN_PROP_BZR_FILEIDS, SVN_PROP_BZR_REVISION_ID,
SVN_PROP_BZR_BRANCHING_SCHEME, SVN_PROP_BZR_MERGE)
- if name == constants.PROP_ENTRY_COMMITTED_REV:
- self.dir_revnum = int(value)
- elif name == constants.PROP_IGNORE:
- self.dir_ignores = value
- elif name.startswith(SVN_PROP_BZR_ANCESTRY):
+ if name.startswith(SVN_PROP_BZR_ANCESTRY):
if self.file_id != self.tree._inventory.root.file_id:
mutter('%r set on non-root dir!' % name)
return
@@ -109,10 +102,12 @@
mutter('%r set on non-root dir!' % name)
return
elif name in (constants.PROP_ENTRY_COMMITTED_DATE,
+ constants.PROP_ENTRY_COMMITTED_REV,
constants.PROP_ENTRY_LAST_AUTHOR,
constants.PROP_ENTRY_LOCK_TOKEN,
constants.PROP_ENTRY_UUID,
- constants.PROP_EXECUTABLE):
+ constants.PROP_EXECUTABLE,
+ constants.PROP_IGNORE):
pass
elif name.startswith(constants.PROP_WC_PREFIX):
pass
@@ -130,9 +125,7 @@
return FileTreeEditor(self.tree, path)
def close(self):
- if (self.dir_ignores is not None and
- self.file_id in self.tree._inventory):
- self.tree._inventory[self.file_id].ignores = self.dir_ignores
+ pass
class FileTreeEditor:
=== modified file 'workingtree.py'
--- a/workingtree.py 2008-03-17 20:59:03 +0000
+++ b/workingtree.py 2008-03-18 02:07:16 +0000
@@ -79,8 +79,8 @@
wc.revision_status(self.basedir, None, True)
if min_rev != max_rev:
#raise WorkingTreeInconsistent(status.min_rev, status.max_rev)
- assert status.max_rev == self.client_ctx.update(self.basedir,
- max_rev, True)
+ assert max_rev == self.client_ctx.update(self.basedir,
+ max_rev, True)[0]
self.base_revnum = max_rev
self.base_tree = SvnBasisTree(self)
@@ -104,7 +104,7 @@
ignores.update(wc.get_default_ignores(svn_config))
def dir_add(adm, prefix, patprefix):
- ignorestr = adm.prop_get(core.SVN_PROP_IGNORE,
+ ignorestr = adm.prop_get(constants.PROP_IGNORE,
self.abspath(prefix).rstrip("/"))
if ignorestr is not None:
for pat in ignorestr.splitlines():
More information about the bazaar-commits
mailing list