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.
+