Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for 
change notification.

The "InheritedProperties" page has been changed by pburba:
http://wiki.apache.org/subversion/InheritedProperties?action=diff&rev1=12&rev2=13

Comment:
A note regarding my slipping sanity.

      [2] When I say 'working node' I mean the 'topmost' version of the node in 
the WC, no matter whether that is different from or the same as the base 
version.
  }}}
   1. Note an important implication of #2 and #3: Unlike svn:mergeinfo, a child 
path with the svn:inheritable:X property explicitly set on it can also inherit 
the svn:inheritable:X property from a parent.  Our default approach will be for 
child values to simply override parent values (exactly how svn:mergeinfo works 
today).  However, the APIs will support getting both explicit and/or  inherited 
property values.  So it's possbile that child values might append to parent 
values or more complex merging of properties may be performed based on the 
specific property.
+   . {{{#!wiki note
+   [PTB] Even as I write #4, it occurs to me that once we elect to move beyond 
a simple override model of inheritance (i.e. the "mergeinfo" model: a child 
with an explicit inheritable property can't inherit that property) that we 
begin descending the slippery slope into madness that has thwarted all previous 
attempts at inherited properties.  What if a child with the explicit 
svn:inheritable:X property has a parent, and a grand parent, and a 
great-grand-parent, etc. with the same explicit property but different values?  
The new APIs below are only dealing with the first parent encountered, which is 
pretty useless.
+ }}}
   1. Unlike svn:mergeinfo, the property value a child inherits from a parent 
will not be modified based on the path-difference between the parent and child. 
 The property value on the parent is the value the child will inherit.  There 
are no plans to provide an API which reveals the specific parent path a child 
inherits from.
   1. While setting inheritable properties on a file has no meaning from the 
standpoint of inheritance, the property still applies to the file itself.  Thus 
there will be no prohibitions on setting inheritable properties on files.
   1. If a child path which inherits a property is copied, the inherited  
properties are not copied with it.  The new destination path inherits  
properties from its new parents.  This means that depending on the copy  
destination the new path may or may not inherit the same property, and  even if 
it does, it may inherit a different value. This puts the onus on  users to set 
their inheritable properties as close to the root of the  repository tree as 
makes sense for the property in question.  Have a  property you want to apply 
to the whole repository?  Set it on the root.   Want it to apply only to a 
single project?  Set it on the root of the  project. Note that if a path has an 
inheritable property '''''explicitly''''' set on it, the property is copied 
just like any other versioned property.

Reply via email to