[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Python properties destroyed when container Pool is garbage collected

From: David James <james82_at_gmail.com>
Date: 2005-08-04 23:57:31 CEST

On 8/4/05, troy d. straszheim <troy@resophonic.com> wrote:
> Here's a new version: on my machine, at the end, it shows that things
> are garbled... rhmmm. I'm going to try this on a linux box as well.
>
> -t
>
> #!/usr/bin/env python
>
> import sys
> import os
> import getopt
> import pprint
>
> #os.putenv("PYTHONPATH", "/Users/troy/Projects/svn-install/lib/svn-python")
> #os.putenv("DYLD_LIBRARY_PATH", "/Users/troy/Projects/svn-install/lib")
>
> from svn import fs, core, repos
>
> os.system("rm -rf /tmp/temp_repo temp_checkout")
> os.system("svnadmin create /tmp/temp_repo")
> os.system("svn co file:///tmp/temp_repo ./temp_checkout")
> os.chdir("./temp_checkout")
> os.system("svn propset svn:externals \"short /external\" .")
> os.system("svn commit -m first_rev_has_external")
> os.system("svn propset svn:externals \"this_one /is_really_really_really_long_and_comes_out_completely_garbled\" .")
> os.system("svn commit -m next_rev_has_empty_external")
>
> repos_ptr = repos.open("/tmp/temp_repo", core.Pool())
> fsob = repos.fs(repos_ptr)
>
> young_root = fs.revision_root(fsob, 2, core.Pool())
> old_root = fs.revision_root(fsob, 1, core.Pool())
>
> young_props = fs.node_proplist(young_root, "/", core.Pool())
> old_props = fs.node_proplist(old_root, "/", core.Pool())
>
> oldprop = old_props["svn:externals"]
> assert(young_props.has_key("svn:externals"))
> youngprop = young_props["svn:externals"]
> if old_props["svn:externals"] != young_props["svn:externals"]:
> print "gah."
> print len(young_props["svn:externals"])
>
> print "this external should be garbled: >>>%(external)s<<<" % { 'external' : youngprop }

Wow! Thanks for the detailed test case, Troy! I've fixed this by
turning SVN strings into real python strings, instead of pointers to
"pool memory".

Fixed in r15595.

Cheers,

David

-- 
David James -- http://www.cs.toronto.edu/~james
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 4 23:59:59 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.