You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <d....@daniel.shahaf.name> on 2010/12/30 21:32:56 UTC

Re: [Issue 3770] New - JavaHL method to set binary property is broken

Hyrum K Wright wrote on Thu, Dec 30, 2010 at 15:03:04 -0500:
> On Thu, Dec 30, 2010 at 2:57 PM, Mark Phippard <ma...@gmail.com> wrote:
> > On Thu, Dec 30, 2010 at 2:17 PM, Hyrum K Wright <hy...@hyrumwright.org> wrote:
> >
> >> Mark,
> >> Daniel pointed out on IRC that all the revpropTable arguments in the
> >> JavaHL API are Map<String, String>.  Should they be adjusted to
> >> Map<String, byte[]> ?
> >
> > What is the rule for revision properties?  I thought they had to be
> > UTF-8 strings, in which case the Java String class seems more
> > appropriate than using Byte[] which would imply the user can assign
> > binary values to the property.  If Revision properties can contain
> > binary values, then yes we should not be using String here.
> 
> I don't remember what the repository enforces, but the underlying API
> contains a hash of const char * revprop names, with values of
> svn_string_t *, which is our counted string which can contain
> arbitrary binary data.
> 
> So the client API allows binary data, but it might be caught further
> down the library stack.
> 

% $svn ps --revprop -r0 svn-binary -F =svn wc1
property 'svn-binary' set on repository revision 0
% $svn ps --revprop -r0 random-data -F =(head -c 1024 /dev/urandom) wc1
property 'random-data' set on repository revision 0
% $svn pg --revprop -r0 random-data --strict wc1 | xxd -ps -c1 | grep 00
00
00
00

> -Hyrum