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

Re: [PATCH] Do not display a binary prop diff in interactive conflict resolver

From: Gavin 'Beau' Baumanis <gavinb_at_thespidernet.com>
Date: Fri, 4 Dec 2009 11:42:06 +1100

Ping.
This Patch submission has received no new comments.

Beau.

On 20/11/2009, at 06:00 , Daniel Näslund wrote:

> On Wed, Nov 18, 2009 at 10:37:01AM +0100, Daniel Näslund wrote:
>> Hi!
>>
>> [[[
>> Do not display a binary property diff in the interactive conflict
>> resolver.
>>
>> * subversion/include/svn_io.h
>> (svn_stream_detect_binary_mimetype): New. Declare.
>>
>> * subversion/libsvn_subr/stream.c
>> (svn_stream_detect_binary_mimetype): Check if atleast 85 % of the
>> bytes fall within the ascii range of printable characters.
>>
>> * subversion/libsvn_wc/props.c
>> (maybe_generate_propconflict): Call ..binary_mimetype() on the
>> mergestream. Set the conflict description according to the outcome.
>>
>> * subversion/svn/conflict-callbacks.c
>> (svn_cl__conflict_handler): Print err msg if desc->is_binary when
>> invoking 'diff-full'.
>>
>> Patch by: Daniel Näslund <daniel{_AT_}longitudo.com>
>> ]]]
>
> svn_stream_detect_binary_mimetype() checked if more than 85 % of the
> content was "binary", then it set a the mimetype to
> "application/octetstream".
>
> This patch only checked if the mergestream was binary. Since the
> mergestream contains both diff headers and hunk symbols, small binary
> content was falsely said to be positive.
>
> Furthermore it used a detection algorithm that considered all characters
> outside the ascii range to be binary. When testing with chinese texts
> the resolver said that the content was binary.
>
> Furthermore, since it only checked the first kb of the mergestream it
> would not detect a situation where only the last part of the mergestream
> was binary.
>
> The two last bugs should also be a problem in svn_io_detect_mimetype2()
> from which I extracted the algorithm for detecting binary content. That
> function is used in the autoprop stuff.
>
> In the end: How often do we set a binary property? I'm starting to
> believe that I'm trying to fix something that doesn't need fixing. Since
> a property is generally small we could still get a useful diff in some
> cases where only one of the files is binary. If we escaped the control
> chars then there would be no harm.
>
> /Daniel
Received on 2009-12-04 01:42:39 CET

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