subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Burba <ptbu...@gmail.com>
Subject Re: svn commit: r895794 - in /subversion/trunk/subversion: libsvn_wc/props.c tests/cmdline/prop_tests.py
Date Tue, 05 Jan 2010 16:23:02 GMT
On Tue, Jan 5, 2010 at 4:58 AM, Bert Huijben <bert@qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: pburba@apache.org [mailto:pburba@apache.org]
>> Sent: maandag 4 januari 2010 22:39
>> To: commits@subversion.apache.org
>> Subject: svn commit: r895794 - in /subversion/trunk/subversion:
>> libsvn_wc/props.c tests/cmdline/prop_tests.py
>>
>> Author: pburba
>> Date: Mon Jan  4 21:38:41 2010
>> New Revision: 895794
>>
>> URL: http://svn.apache.org/viewvc?rev=895794&view=rev
>> Log:
>> Consider non-inheritable mergeinfo on a non-directory as non-canonical.
>>
>> Wow, that was a lot of "nons".
>>
>> This prevents us from doing things like using svn propset to set non-
>> inheritable mergeinfo on a file.  At best this mergeinfo is meaningless
>> and confusing, at worst it is a bizarre bug waiting to happen.
>>
>> * subversion/libsvn_wc/props.c
>>   (svn_wc_canonicalize_svn_prop): Error out when trying to set
>>    non-inheritable mergeinfo on anything other than a directory.
>>
>> * subversion/tests/cmdline/prop_tests.py
>>   (inappropriate_props): Expand test to cover this use case.
>>
>> Modified:
>>     subversion/trunk/subversion/libsvn_wc/props.c
>>     subversion/trunk/subversion/tests/cmdline/prop_tests.py
>>
>> Modified: subversion/trunk/subversion/libsvn_wc/props.c
>> URL:
>> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/prop
>> s.c?rev=895794&r1=895793&r2=895794&view=diff
>> ==========================================================
>> ====================
>> --- subversion/trunk/subversion/libsvn_wc/props.c (original)
>> +++ subversion/trunk/subversion/libsvn_wc/props.c Mon Jan  4 21:38:41
>> 2010
>> @@ -2444,6 +2444,15 @@
>>        apr_hash_t *mergeinfo;
>>        svn_string_t *new_value_str;
>>
>> +
>> +      /* Non-inheritable mergeinfo is only valid on directories. */
>> +      if (kind != svn_node_dir
>> +          && strstr(propval->data, SVN_MERGEINFO_NONINHERITABLE_STR))
>> +        return svn_error_createf(
>> +          SVN_ERR_MERGEINFO_PARSE_ERROR, NULL,
>> +          _("Cannot set non-inheritable mergeinfo on a non-directory ('%s')"),
>> +          svn_dirent_local_style(path, pool));
>> +
>
> Doesn't this make "*" a character that can't be used in paths that are used for merging?

Hi Bert,

Well they could be used, but the merge results might likely be wrong
and/or the wrong mergeinfo might be recorded describing the merge.  My
overly-simplistic approach using strstr interprets mergeinfo with a
'*' in the merge source path as non-inheritable, whether or not it
actually is.  In r896115 I fixed this case and two other places where
the same faulty assumption was made.

Paul

> From a few recent mails I know there are users that have '>', '<' and ':' in their
paths, so I'm thinking maybe there are users that really have a '*' in their path. We can't
support these paths on Windows, but on unix we can.
>
>        Bert

Mime
View raw message