subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache subversion Wiki <comm...@subversion.apache.org>
Subject [Subversion Wiki] Update of "InheritedProperties" by pburba
Date Fri, 03 Feb 2012 22:15:34 GMT
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=22&rev2=23

Comment:
Remove statement which is now false in light of the latest proposed APIs.

        [1] By actual tree I mean the topmost (i.e. MAX(op_depth)) version of the node in
the WC, pretty much the same thing your 2nd footnote means(?).  I thought we differentiated
actual vs. working such that the former included property and text changes?
  }}}
   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.
-  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. 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.
   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.
  
@@ -86, +86 @@

  A child path that inherits a property from its parent may not have ready access to that
parent in the working copy (e.g. the root of the working copy is a subtree of the parent path).
 To ensure that traditionally disconnected operations (i.e. those that require no access to
the repository, like 'svn add') remain disconnected, we will maintain a cache of properties
inherited by the root of the working copy. Whenever a new working copy is checked out, any
properties inherited by the root of the working copy will be cached in the working copy. 
If a subtree within a working copy is switched, a separate cache will be created for the root
of that subtree.  Whenever an update occurs the cache(s) will be refreshed.
  
  The cache will be stored in a new wc-ng table:
- ||||||||||<tablewidth="978px" tableheight="324px"style="font-weight:bold;  ;text-align:center">TABLE:
INHERITABLE_PROPS ||
+ ||||||||||<tablewidth="978px" tableheight="324px"style="font-weight:bold;   ;text-align:center">TABLE:
INHERITABLE_PROPS ||
  ||<style="font-weight:bold;">Name ||<style="font-weight:bold;">Data Type ||<style="font-weight:bold;">Primary
Key ||<style="font-weight:bold;">Foreign Key ||<style="font-weight:bold;">Notes
||
  ||wc_id ||integer ||Yes ||References NODES.WC_ID || ||
  ||local_relpath ||text ||Yes ||References NODES.LOCAL_RELPATH || ||
@@ -94, +94 @@

  ||repos_parent_path ||text ||Yes ||-- ||Location of parent with one or more inheritable
properties relative the the repository root. ||
  ||revision ||integer ||-- ||-- ||Revision of repos_parent_path. ||
  ||inheritable_props ||blob ||-- ||-- ||The parent's inheritable properties. ||
- 
- 
  
  
  

Mime
View raw message