You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by Apache subversion Wiki <co...@subversion.apache.org> on 2012/10/24 18:30:22 UTC

[Subversion Wiki] Update of "Inheritable-Ignores-AutoProps" by pburba

Dear Wiki user,

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

The "Inheritable-Ignores-AutoProps" page has been changed by pburba:
http://wiki.apache.org/subversion/Inheritable-Ignores-AutoProps?action=diff&rev1=5&rev2=6

Comment:
Add some info about svn:inheritable-ignores

  There really isn't anything particularly "server dictated" about this design at all.  It started life as an alternative approach to the server dictated configuration ideas described in http://wiki.apache.org/subversion/ServerDictatedConfiguration and as such a quick read of that original design is suggested.  If you've already read that a lot of this will sound familiar since the goals are essentially the same.
  }}}
  === Behavioral Specification ===
- New Subversion reserved properties with the prefix "svn:inheritable-*"<<FootNote(Prefer "svn:config-*" or some other option?  Don't worry, it's not too late to paint the bike shed a new color)>> will provide additional configuration information that overrides/extends the settings found in the user's run-time configuration.  Initially there will be only one such property "svn:inheritable-auto-props".  This property will (no surprise!) override/extend the auto-props configuration settings which dictate the properties which are automatically set  on newly added or imported files.  Unlike traditional auto-props, which can be disabled in the run-time config (i.e. "enable-auto-props = no"), svn:inheritable-auto-props cannot be disabled by a well-behaved client.
+ New Subversion reserved properties with the prefix "svn:inheritable-*"<<FootNote(Prefer "svn:config-*" or some other option?  Don't worry, it's not too late to paint the bike shed a new color)>> will provide additional configuration information that overrides/extends the settings found in the user's run-time configuration.  Initially there will be two such properties "svn:inheritable-auto-props" and "svn:inheritable-ignores".
+ 
+ This "svn:inheritable-auto-props" property will (no surprise!) override/extend the auto-props configuration settings which dictate the properties which are automatically set  on newly added or imported files.  Unlike traditional auto-props, which can be disabled in the run-time config (i.e. "enable-auto-props = no"), svn:inheritable-auto-props cannot be disabled by a well-behaved client.
+ 
+ The "svn:inheritable-ignores" property will extend the global-ignores configuration settings and the existing svn:ignore property, both of which define file patterns that are ignored by the svn status, import, and add subcommands. Like svn:inheritable-auto-props, svn:inheritable-ignores cannot be disregarded by a well-behaved client.
  
  {{{#!wiki warning
  "Well-Behaved Clients" and "Trust, But Verify"
@@ -25, +29 @@

  The values of the svn:inheritable-auto-props property are as per the existing run-time configuration auto-props, they contain "any number of key-value pairs in the format ''PATTERN'' = ''PROPNAME''=''VALUE''[;''PROPNAME''=''VALUE''...], where ''PATTERN'' is a file pattern that matches one or more filenames and the rest of the line is a semicolon-delimited set of property assignments. (If you need to use a semicolon in your property's name or value, you can escape it by doubling it.)")<<FootNote(Thank you 'Version Control with Subversion' book, http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.advanced.confarea)>>
  
  Like the svn:ignore property it only makes sense to set svn:inheritable-auto-props on directories, so attempts to propset the latter on a file will fail.
+ 
+ === Ignores Format ===
+ The values for the svn:inheritable-ignores property are per the format of configuration defined global-ignores: A whitespace-delimited collection of file patterns.  Like svn:inheritable-auto-props, the svn:inheritable-ignores property can only be set on directories.
  
  === Auto-Props Hierarchy and Precedence ===
  Any path added to the working copy or imported to the repository must have a previously versioned parent. Both the svn:inheritable-auto-props explicitly set on that parent and the properties inherited by that parent, in addition to the run-time configuration auto-props, will determine the auto-props for the added/imported files under the versioned parent.  Where the auto-prop values '''for the same file pattern''' conflict there are a few simple rules:
@@ -98, +105 @@

  {{{#!wiki warning
  If multiple patterns, defined at different levels (i.e. the run-time config and multiple parent's svn:inheritable-auto-props) all match a given file, then, like multiple matching patterns within the run-time config, there is no guarantee that auto-props will be applied in any particular order.  One rule only overrides another rule if they have the exact same pattern.
  }}}
+ === Ignores "Heirarchy" ===
+ The ignores property in effect for a given path are the sum of the ignore patterns found in:
  
+  1. The global-ignores section of the runtime configuration.
+  1. Any svn:inherited-ignores properties explicitly set on, or inherited by, the path.
+  1. The svn:ignore property, if any, set on the path's immediate parent.
+ 
+ There is no actual heirarchy among these ignore sources,  the patterns found in each are simply combined, they do do not override each other. If a subcommand is passed the --no-ignore option, then #1 and #3 are not considered.
+