Arwin Arni wrote:
> Properties are validated regardless of the action on the property. This poses 
> a 
> problem when it comes to very old repositories that contain "invalid" 
> properties committed by very old clients that didn't perform these 
> validations.

What cases are you talking about, specifically?

Invalid prop names that are rejected by 'svn ps' are not rejected by 'svn 
propdel':

[[[
$ svn ps svn:foo v .
svn: E195011: 'svn:foo' is not a valid svn: property name; re-run with 
'--force' to set it
$ svn ps svn:foo v . --force
property 'svn:foo' set on '.'
$ svn pd svn:foo . 
property 'svn:foo' deleted from '.'.
]]]

Invalid prop values that are rejected by 'svn ps' are not rejected by 'svn 
propdel':

[[[
$ svn ps svn:externals foo-bar .
svn: E195005: Error parsing svn:externals property on 'wc': 'foo-bar'
$ svn ps svn:externals foo-bar . --force
svn: E195005: Error parsing svn:externals property on 'wc': 'foo-bar'
$ svn pl -v
[...nothing shown...]

[...edit the repository by hand to create an invalid prop value...]

$ svn pl -vR
Properties on '.':
  svn:externals
    foo-bar
$ svn pd svn:externals .
property 'svn:externals' deleted from '.'.
]]]

at least for the cases I tried, using an svn 1.8.0 release candidate.

> My contention is that we need to check the validity of the property 
> only during addition and modification. Validation during deletion prevents 
> the 
> user from removing what he recognizes as an invalid property.

Agreed.  We discussed this before, at least in terms of the command-line 
client, and that was the conclusion we agreed on.  The principle should apply 
consistently, so +1 to fix any APIs or wherever you're seeing the problem, to 
do the same.

- Julian

Reply via email to