Project Settings

Figure 5.20. Subversion property page

Subversion property page

Sometimes you want to have a more detailed information about a file/directory than just the icon overlay. You can get all the information Subversion provides in the explorer properties dialog. Just select the file or directory and select Windows Menuproperties in the context menu (note: this is the normal properties menu entry the explorer provides, not in the TortoiseSVN submenu!). In the properties dialog box TortoiseSVN has added a new property page for files/folders under Subversion control.

On the Subversion page you can see all relevant information about the selected file/directory. In addition you can read and set the Subversion properties. You can add your own properties, or some properties with a special meaning in Subversion. These begin with svn:. svn:externals is such a property; see how to handle externals in the section called “Referenced Projects”. For more information about properties in Subversion see the Subversion Manual .

To set a property, select the required property name from the combo box, then type in a value in the field below. Properties which take multiple values, such as an ignore list, can be entered on multiple lines. Click on Set to add that property to the list.

If you want to apply a property to many items at once, select the files/folders in explorer, then select Windows Menuproperties

If you want to apply the property to every file and folder in the hierarchy below the current folder, check the Recursive checkbox.

Some properties, for example svn:needs-lock, can only be applied to files, so the property name doesn't appear in the drop down list for folders. You can still apply such a property recursively to all files in a hierarchy, but you have to type in the property name yourself.

If you wish to edit an existing property, first select that property from the list of existing properties, so that it appears in the edit area. Then procede as for a new property.

If you wish to remove an existing property, select that property from the list of existing properties, so that it appears in the edit area. Then click on Remove.

The svn:externals property can be used to pull in other projects from the same repository or a completely different repository. For more information, read the section called “Referenced Projects”.

TortoiseSVN has a few special properties of its own, and these begin with tsvn:.

Some tsvn: properties require a true/false value. TSVN also understands yes as a synonym for true and no as a synonym for false.

Set the tsvn: properties on folders

These tsvn: properties must be set on folders for the system to work. When you commit a file or folder the properties are read from that folder. If the properties are not found there, TortoiseSVN will search upwards through the folder tree to find them until it comes to an unversioned folder, or the tree root (eg. C:\) is found. If you can be sure that each user checks out only from e.g trunk/ and not some subfolder, then it is sufficient to set the properties on trunk/. If you can't be sure, you should set the properties recursively on each subfolder. A property setting deeper in the project hierarchy overrides settings on higher levels (closer to trunk/).

For tsvn: properties only you can use the Recursive checkbox to set the property to all subfolders in the hierarchy, without also setting it on all files.

Commit properties

Subversion properties are versioned. After you change or add a property you have to commit your changes.

Conflicts on properties

If there's a conflict on committing the changes, because another user has changed the same property, Subversion generates a .prej file. Delete this file after you have resolved the conflict.

Automatic property setting

You can configure Subversion to set properties automatically on files and folders when they are added to the repository. Read the section called “TortoiseSVN's Settings” for further information.

TortoiseSVN can integrate with some bugtracking tools. This uses properties, which start with bugtraq:. Read the section called “Integration with Bugtracking Systems / Issue trackers” for further information.