System properties/VM options

Some very fundamental options, which have to be known early at startup time or which typically need not to be changed are specified by Java VM options instead of SmartSVN preferences.

Options suppied to the VM are either actual standard or non-standard options, like -Xmx to set the maximum memory limit, or system properties, typically prefixed by -D. This chapter is mainly about SmartSVN-specific system properties.

General properties

Following general purpose properties are supported by SmartSVN.

smartsvn.home

This propery specifies the directory into which SmartSVN will put its configuration files; refer to Installation and Files for details. The value of smartsvn.home may also contain other default Java system properties, like user.home. It may also contain the special smartsvn.installation property, which refers to the installation directory of SmartSVN.

Example

To store all settings into the subdirectory .settings of SmartSVN's installation directory, you can set smartsvn.home=${smartsvn.installation}\.settings.

SVN properties

Following properties are related to the core SVN functions.

svnkit.admindir

This property specifies the name of the directory into which Subversion's administrative files are stored. By default, this is the .svn directory.

Example

ASP.NET does not allow directories to start with a '. ', as '.svn' does. Therefore, to use ASP.NET in combination with SmartSVN, you can change the administrative directory name e.g. to _svn by svnkit.admindir=_svn

smartsvn.tcp.connect-timeout

This property specifies the CONNECT timeout for repository connections. By default, this timeout is set to 60 seconds.

Example

With smartsvn.tcp.connect-timeout=10 you can set the CONNECT timeout to 10 seconds.

smartsvn.tcp.read-timeout

This property specifies the READ timeout for repository connections. By default,this timeout is set to one hour, which gives the server enough time to respond to time-expensive requests. On the other hand, if a server is not responding at all, SmartSVN may block for one hour, until it reports the problem. This may be annoying under certain circumstances and hence can be changed by this property. The timeout value is specified in seconds.

Example

With smartsvn.tcp.read-timeout=60 you can set the READ timeout to 60 seconds.

smartsvn.default-connection-logging

With this property you can enable the connection logging by default for all commands. This can be useful when searching for connection-related problems, which occur only rarely. By default, this property is not enabled.

Example

Use smartsvn.default-connection-logging=true to enable connection logging by default.

smartsvn.http-spool-directory

With this property you can define a 'spool' directory into which HTTP connection data is temporarily spooled. Spooling is the process in which server response is completely (fully) read first and only then processed. This approach may result in a certain initial delay (notifications usually displayed for certain operation will only be displayed after all data is fetched), but may be necessary in case the server uses to close connection when data it provides is not completely read in a prompt manner.

In general spooling does not result in a slow down, as file system access is much faster compared to network access; the main drawback of spooling is that no events are generated while data is spooled, so you may perceive that the operation is significantly slower than with spooling turned off.

Example

Use smartsvn.http-spool-directory=c:/temp/smartsvn on Windows or smartsvn.http-spool-directory=/tmp/smartsvn on Unix or Mac OS to enable HTTP connection spooling.

smartsvn.commit.disallowed-filename-characters

With this property you can configure which filename characters should be disallowed for committing. This property defauls to <>:"/\|?*, representing those characters which are either reserved on Windows, Unix or Mac OS. The purpose of this check is to ensure that committed files can be checked out on every platform.

Example

Use smartsvn.commit.disallowed-filename-characters= to disable the check for disallowed characters completely.

smartsvn.compare.ignore-binary-mime-type

With this property you can force SmartSVN to ignore svn:mime-type values set to binary for the File Compare. In this case, SmartSVN will derive the content type text/binary itself by inspecting the file. This is the same as if svn:mime-type has not been set at all.

Example

Use smartsvn.compare.ignore-binary-mime-type=true to ignore binary svn:mime-type values.

User interface properties

Following properties are related to the user interface of SmartSVN.

smartsvn.lookAndFeel.usePlatformIndependent

This property switches to SmartSVN's own, platform independent Look'n'Feel.

Example

To use the own Look'n'Feel, set smartsvn.lookAndFeel.usePlatformIndependent=true

smartsvn.lookandfeel

This property specifies the Look'n'Feel of SmartSVN. The value must be the fully qualified class name of a valid Look'n'Feel on your system.

Example

On Microsoft Windows, you can change to the default Windows Look'n' feel by setting smartsvn.lookandfeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel

Note

SmartSVN's Look'n'Feel has been optimized for SmartSVN. Changing the Look'n'Feel may result in the GUI less nice looking.

smartsvn.ui.font

This property specifies the font family which is used for SmartSVN's own Look'n'Feel. The value must be a valid Java font name.

Example

To change the font family to Dialog, you may use smartsvn.uifont=Dialog

smartsvn.ui.fontsize

This property specifies the font size which is used for SmartSVN's own Look'n'Feel. The value specifies the point size of the font, which defaults to 12.

smartsvn.ui.brightness

This property specifies the brightness of menu bars, toolbar, dialog backgrounds, etc. Valid values are in the range of 0.0 to 1.0. This property is only applicable, if SmartSVN's own Look'n'Feel is used, i.e. smartsvn.lookandfeel has not been changed.

smartsvn.ui.window-background-brightness

This property specifies the brightness of the 'White' of window backgrounds, like the file table. Valid values are in the range of 0.0 to 1.0. This property is only applicable, if SmartSVN's own Look'n'Feel is used, i.e. smartsvn.lookandfeel has not been changed.

smartsvn.lookAndFeel.tooltipDisplayDuration

This property specifies the duration in seconds for displaying a tooltip.

smartsvn.splashScreen.show

This property specifies whether to show the splash screen on startup or not. It defaults to true.

Example

Use smartsvn.splashScreen.show=false to disable the splash screen.

Transaction-related properties

There are following VM properties related to the Transactions views.

smartsvn.transaction.message-length

This property specifies the maximum commit message length which will be displayed for Transactions. Longer commit messages will be truncated to save memory usage. The default value is set to 256.

smartsvn.transactions.connect-timeout

This property specifies the CONNECT timeout for repository connections established by the Transactions. The default value is set to 10 seconds. For details refer to smartsvn.transactions.connect-timeout.

smartsvn.transactions.read-timeout

This property specifies the READ timeout for repository connections established by the Transactions. The default value is set to 60 seconds. For details refer to smartsvn.transactions.read-timeout.

smartsvn.logcache.refresh-chill-out-cycle

This property specifies the chill out cycle (in counts of revisions) for building the Log Cache. It can be used to alleviate the server in perspective that many clients will be building the cache at the same time. The default value is set to 0 revisions, meaning no chill out cycle.

Warning

Use this property only if necessary; it can slow down the build process of a Log Cache significantly, making it even unusable.

smartsvn.logcache.refresh-chill-out-seconds

This property specifies the maximum number of seconds to sleep during a chill out cycle for building the Log Cache. This property is only used in combination with smartsvn.logcache.refresh-chill-out-cycle. The default value is set to 10 seconds.

Example

Use smartsvn.logcache.refresh-chill-out-cycle=1000 and smartsvn.logcache.refresh-chill-out-seconds=60 to have SmartSVN sleeping 60 seconds after every 1000 received revisions.

Other properties

There are following other VM properties available.

smartsvn.logcache.useURLasUUID

The Log Cache uses repository UUIDs to distinguish between different repositories resp. to detect whether two repositories are equal even when different URLs are used to access them. This for instance happens when using different protocols, like ssh:// and https://.

Although not recommended, sometimes a repository has been created from another repository just by copying the raw files. In this case both repositories will have the same UUID what will confuse the Log Cache. For such cases the distinction between repositories has to be based on their URLs.

Example

Set smartsvn.logcache.useURLasUUID=true to have this property enabled.

smartsvn.log.maximum-custom-properties

This property specifies the maximum number of custom property columns displayed within the Log frame after having invoked Log|Load Properties. The default value is set to 10.

Specifying VM options and system properties

Depending on your operating system, VM options resp. system properties are specified in different ways.

smartsvn.properties file

The smartsvn.properties file is present on all operating systems. It's located in SmartSVN's home directory; refer to General properties for details. All system properties can be specified in this file.

Note

System properties are VM options which would be specified by the -D prefix when directly providing them with the start of the java process. All options listed in this chapter are system properties and hence can be specified in the smartsvn.properties file.

Every option is specified on a new line, with its name followed by a '=' and the corresponding value.

Microsoft Windows

VM options are specified in bin/smartsvn.vmoptions within the installation directory of SmartSVN. You can also specify system properties by adding a new line with the property name, prefixed by -D, and appending = and the corresponding property value.

Example

Add the line

-Dsmartsvn.http.timeout=60

to set the HTTP-timeout to 60 seconds.

Apple Mac OS X

System properties are specified in the Info.plist file. Right click the SmartSVN.app in the Finder and select Show Package Contents, double click the Contents directory and there you will find the Info.plist file. Open it in a text editor of your choice. Specify the system properties as key-string pairs in the dict-tag after the key with the Properties content.

Example

Use the following key-string pairs

<key>Properties</key>
<dict>
...
<key>smartsvn.http.timeout</key>
<string>60</string>
</dict>

to set the HTTP-timeout to 60 seconds.

Specify a VM option by placing them in the string-tag to the VMOptions array.

Unix

System properties are specified e.g. in bin/smartsvn.sh within the installation directory of SmartSVN. You can specify a property by adding the property name, prefixed by -D and appending = and the corresponding property value to the _VM_PROPERTIES environment variable. Multiple properties are simply separated by a whitespace; make sure to use quotes when specifying several properties.

Example

Add

_VM_PROPERTIES="$_VM_PROPERTIES -Dsmartsvn.http.timeout=60"

before the $_JAVA_EXEC call to set the HTTP-timeout to 60 seconds.