supports the association of meta-data, called properties, with assets within the repository. Properties can be added to files, directories and revisions. A property consists of a name (a string) and a value, which can be a string or a binary value.

Properties on files and directories are versioned just like the assets that they are attached too. So if you change a property value, or add or delete a property, you have to commit that to the repository and it will cause a new revision to be created. You can thus retrieve the value of a property as it was on a file or directory at a specific revision number.

Because revisions in Subversion are a static resource (ie. they do not change over time), properties associated with them are not versioned. If you add, edit or delete a property, the history for that property is lost.

Property names beginning with the string svn: are reserved for the system and should not be used to store user properties. Some of the special system properties include:

  • svn:log – the message associate with the committed revision
  • svn:mime-type – the mime-type to be associated with the file that the property is attached too
  • svn:executable – indicates if the executable status of a file should be preserved on *nix systems (useful for scripts being stored in the repository)
  • svn:ignore – when attached to a directory, sets a list of files and subdirectories to be ignored by Subversion