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

Re: validate_eol_prop_against_file() inefficiency?

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Sat, 26 Jan 2008 22:33:44 +0000

David Glasser wrote:
> On Dec 28, 2007 1:13 PM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
>>While updating the svnbook, I noticed something odd. In Subversion 1.4,
>>when you try to set svn:eol-style on a binary file, you get the obvious error:
>> % svn pset svn:eol-style CRLF suse.png
>> svn: File 'suse.png' has binary mime type property
>>In trunk, however, you get something far more bizarre:
>> % svn pset svn:eol-style CRLF suse.png
>> subversion/libsvn_wc/props.c:2425: (apr_err=200009)
>> svn: File 'suse.png' has inconsistent newlines
>> subversion/libsvn_subr/subst.c:736: (apr_err=135000)
>> svn: Inconsistent line ending style
>>I see that libsvn_wc/props.c:validate_eol_prop_against_file() has been
>>ordered differently in trunk. What I can't figure out is why the
>>far-more-expensive newline consistency check was moved ahead of the
>>super-cheap is-binary check? Besides being really inefficient, the new
>>error is just not as clear.
>>Was this fallout from the URL propsetting support or something?
> Yes, this was fallout from the URL propsetting support, and you're
> absolutely right, the new error is not as clear.
> The property validation code may need access to the MIME type and the
> contents of the file. I decided to make a single callback
> (implemented both at the client layer using RA code, for URLs, and in
> libsvn_wc for wc propsets) that gives both the MIME type and the
> contents if necessary.
> The error issue could be trivially fixed by just doing the checks in a
> different order, but that wouldn't fix the efficiency issue. I could
> make two separate callbacks for MIME type and contents, but that seems
> like overkill. Maybe I'll change the callback so that you can pass it
> NULL prop-hash or stream, and the callback gets called twice...

For the email record, I see that David fixed this as suggested in r28721.

- Julian

To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-01-26 23:33:59 CET

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