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.
Following general purpose properties are supported by SmartSVN.
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. |
Following properties are related to the core SVN functions.
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 |
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. |
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. |
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. |
Note |
The connection.log file is freshly created on every start-up of SmartSVN. So immediately after the problem has occurred make a backup of this file, only then stop/restart SmartSVN (if necessary). |
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. |
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. |
With this property you can configure svn:mergeinfo creation/modification on local copy operations.
Example |
Use svnkit.wccopy.nomergeinfo=true to skip svn:mergeinfo creation/modification. |
Warning |
When setting this property to true, SmartSVN's behaviour is not fully compatible with Subversion 1.5 merge tracking. |
Following properties are related to the user interface of SmartSVN.
This property switches to SmartSVN's own, platform-independent Look'n'Feel.
Example |
To use SmartSVN's platform independent Look'n'Feel, set smartsvn.lookAndFeel.usePlatformIndependent=true |
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 |
To use the Plastic Look'n'Feel from JGoodies Looks, put the looks*.jar into the lib directory (for non-Windows systems, you need to modify the launcher script, too) and set the following option smartsvn.lookandfeel=com.jgoodies.looks.plastic.PlasticLookAndFeel |
Note |
SmartSVN's standard Look'n'Feels have been optimized for SmartSVN. Changing the Look'n'Feel may result in the GUI less nice looking. |
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 |
This property specifies the font size which is used for the platform independent Look'n'Feel (property smartsvn.lookAndFeel.usePlatformIndependent needs to be set, too, on Windows). The value specifies the point size of the font, which defaults to 12.
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.
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.
This property specifies the duration in seconds for displaying a tooltip.
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. |
This property specifies whether to show toolbar icon texts or not.
Example |
Use smartsvn.toolbar.textBelowIcon=false to switch off toolbar icon texts. |
This property specifies whether to show trees striped (alternating while/gray columns) or not.
Example |
Use q.lookAndFeel.treeStriped=false to switch striping off. |
There are following VM properties related to the Transactions views.
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.
This property specifies the maximum file/directory count per revision which will be displayed for Transactions. If a revision contains more changed files/directories, it will be truncated and SmartSVN will add a note '[File display limited]' to the commit message. The default value is set to 1000.
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.tcp.connect-timeout.
This property specifies the READ timeout for repository connections established by the Transactions (except of cache updates, which require a log command to be executed). The default value is set to 60 seconds. For details refer to smartsvn.tcp.read-timeout.
This property specifies the READ timeout during cache updates (which require a log command that may take significant time until response). The default value is identical to smartsvn.tcp.read-timeout.
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. |
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. |
This property specifies the maximum length (in characters) of a commit message to be stored. Commit messages which exceed this limit will be truncated, ending with a special note that this truncation happened. The default value is set to 16384 characters.
Example |
Use smartsvn.logcache.maximum-message-length=1024 to set the limit to 1024 characters. |
Following system properties are related to the JIRA plugin.
With this property you can configure the number of unreleased versions for which in-progress and open issues will be loaded (the default value is 3).
Example |
Set smartsvn.plugin.jira.unreleased-versions-to-display=5 to increase to 5 unreleased versions. |
If you are using custom workflows, it may be necessary to reconfigure the constant which is sent when you select to resolve an issue (the default value of the constant is '5').
Example |
Set smartsvn.plugin.jira.resolved-constant=31 to send '31' for resolving issues. |
Use this property to load all issues (instead of only in-progress and open issues). This may require transferring of large amounts of data and is in general not recommended.
Example |
Set smartsvn.plugin.jira.load-all-issues=true to have this property enabled. |
There are following other VM properties available.
The Log Cache uses repository UUIDs to distinguish between different repositories, i.e. 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. |
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.
With this property the automatic/manual Check for New Version can be disabled.
Example |
Set smartsvn.check-for-new-version=false to disable the check. |
With this property you can change the maximum number of files/directories which will be displayed in the Output area for each command.
Example |
Set smartsvn.output.maximum-file-count=500 to display at most 500 files. |
With this property the display of the raw svn:mergeinfo information in the Revision Graph can be enabled.
Example |
Set smartsvn.revision-graph.show-raw-mergeinfo=true to display raw svn:mergeinfo information. |
Depending on your operating system, VM options and system properties are specified in different ways.
The smartsvn.properties file is present on all operating systems. It's located in SmartSVN's settings 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.
Example |
Add smartsvn.http.timeout=60 to set the HTTP-timeout to 60 seconds. |
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. |
System properties are specified in the SmartSVN launcher script. Right click the SmartSVN.app in the Finder and select Show Package Contents, open the Contents/MacOS directory and there you will find the SmartSVN file. Open it in a text editor of your choice. You can specify a property by adding the property name, prefixed by -D and appending = and the corresponding property value to the VM_OPTIONS environment variable. Multiple properties are simply separated by a whitespace; make sure to use quotes when specifying several properties.
Example |
Add VM_OPTIONS="${VM_OPTIONS} -Dsmartsvn.http.timeout=60" before the /usr/libexec/java_home call to set the HTTP-timeout to 60 seconds. |
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. |