On Sun, Nov 18, 2012 at 9:50 PM, Julian Foad <julianfoad_at_btopenworld.com> wrote:
> 'svn propset' lets us create any property name 'svn:foo', with good reason: we want old clients to be able to set and edit properties that only the newer clients know about. However, there is a pitfall for unwary users: it's east to mis-spell a prop name and not notice. For example:
>
> svn:ignores
> svn:global-ignore
>
> are both mis-spellings.
>
> It would seem reasonable to require '--force' to set an unknown 'svn:' property name. Note that we already require '--force' to set a known svn:something property to an invalid value.
>
> Proposal:
>
> For any unrecognized property name in the 'svn:' name space, these would bail out with an error unless '--force' is given:
>
> svn pset svn:foo
> svn pedit svn:foo
+1 Seems totally reasonable. While working on svn:global-ignores, I
had a moment of "why isn't svn:gobal-ignore working?" during some ad
hoc testing.
> and all other subcommands where properties are handled would continue to work as normal, no '--force' needed, including:
>
> svn pdel svn:foo
> svn pget svn:foo
> svn plist
> svn patch, merge, diff, checkout, update, switch, ...
>
> Rationale notes:
>
> 'propset' would bail out even if the property already exists. One reason for this is so that multi-target or 'recursive' mode doesn't have to do anything special if the property exists on only some of the targets.
>
> 'pset' is the only one that really needs 'force' to meet the needs of this proposal. If a property already exists then it's probably best to assume that it exists on purpose, so we could argue that there is little harm in allowing 'pedit' and 'pdel'. Currently, 'pset' and 'pedit' require '--force' to set an invalid *value* for a known property (such as 'svn pset svn:eol-style x'); pdel doesn't take a '--force' option and intentionally allows properties with invalid values to be deleted. An advantage in discouraging 'svn pedit svn:foo' is that it can't validate the value if it doesn't know anything about 'svn:foo'. For these reasons and for consistency with the value-checking, the proposal has both 'pset' and 'pedit' validate the name, but not 'pdel'.
>
>
> Thoughts, objections?
>
> - Julian
>
>
>
> --
> Subversion Live 2012 - 2 Days: training, networking, demos & more! http://bit.ly/NgUaRi
> Certified & Supported Apache Subversion Downloads: http://www.wandisco.com/subversion/download
>
--
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba
Received on 2012-11-19 05:32:44 CET