Re: [RFC] svn propset should require 'force' to set unknown svn: propnames
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Mon, 26 Nov 2012 20:33:30 +0000 (GMT)
Branko Čibej wrote:
Certainly we can and should suggest 'svn:mergeinfo' if the user typed 'svn:mergefino' or 'svn:ergeinfo' or 'svn:merginfo' or 'svn:mergeinfoo' or 'snv:mergeinfo'. Zero risk.
> Which I agree is orthogonal to the question of whether we should
>> That last point makes me wonder: should this 'unknown prop name'
I don't understand why you say that.
In general, setting *or* deleting an unknown prop name causes nothing significant to happen on *this* client, and may cause something (expected or unexpected) to happen on another client. More specifically, we can talk about two classes of property names that are unknown to this client: those unknown to any client and those known to some other clients (such as a future 'svn' client or a non-svn client). The effect, if we don't catch it, can be summarized as:
Example This client Other client
 Typo -- prop name unknown to any client.
If the prop name is unknown to any client, it's almost certainly a typo and should be diagnosed as such, no matter whether setting or deleting. The prop almost certainly isn't already set; if it is then the user has probably set it by accident (or discovered that somebody else did) and is now running 'svn:propdel' to delete it. If we don't diagnose it, the inconvenience for the user is greater for 'propset' (where svn 1.7 proceeds without complaint) and less for 'propdel' (where svn 1.7 already complains 'Attempting to delete nonexistent property ...').
If the prop name is known to other clients, setting and deleting are equally significant as far as this client can tell: either of them can cause some effect on another client that is unexpected (or quite possibly expected and intended) by this user.
It's probably fair to assume that the 'typo -- unknown to any client' scenario is common and the 'known to other clients' scenario uncommon in practice.
My conclusion is flagging 'propdel' is less important than flagging 'propset' but still useful, but not enough to make a fuss about. Oops, too late, I'va already made a fuss about it.
This is an archived mail posted to the Subversion Dev mailing list.