Subversion Client Configuration

Committers need to properly configure their svn client so that the appropriate subversion properties are set on newly added files. One of the most important properties is the eol-style property that configures OS-specific line-endings for text files. We also use in our files a few another properties like Author, Revision and Date, that will be replaced by your SVN client automatically on commit, if you follow this document.

The SVN config file is located on Windows at:

C:\Documents and Settings\YourUserName\Application Data\Subversion\config

And on Unix/Mac OS X at:

~/.subversion/config

The first step you need to do, is to uncomment (if it's not already) the enable-auto-props property, and set a value of yes to it.

enable-auto-props=yes

The following properties should be uncommented, or added into your local configuration file. Make sure to not duplicate entries as duplicate sections or property name can cause problems.

*.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
*.properties = svn:mime-type=text/plain;svn:eol-style=native
*.txt = svn:mime-type=text/plain;svn:eol-style=native
*.apt = svn:mime-type=text/plain;svn:eol-style=native
*.xml = svn:mime-type=text/xml;svn:eol-style=native

These settings are automatically used, if you use your SVN client to perform SVN related tasks, but if you use and IDE like Eclipse there are a few more things to do.

Eclipse

As it seems, the Subclipse plugin doesn't use this configuration automatically. What you can do is, go to Preferences->Team->SVN and specify the Configuration location to be the one mentioned at the start of this page. To test it, you can create a new file inside Eclipse, click right on it, go to Team menu, and select "Add to Version Control"; then if you select "Show properties" for that file, from the same Team menu, you should see that the right properties were set. The new file you can then revert if you don't need it anymore.

Tested with Eclipse 3.2.1 and Subclipse 1.2.3