The
ISVNOptions interface should be implemented to manage
global run-time configuration options.
Like the Subversion client library SVNKit uses configuration options
during runtime.
ISVNOptions is intended for managing those
options which are similar to ones you can meet in the
config file
located in the default Subversion configuration area - on
Windows platforms
it's usually located in the
'Documents and Settings\UserName\Subversion'
(or simply
'%APPDATA%\Subversion') directory, on
Unix-like platforms - in
'~/.subversion'.
ISVNOptions is not intended for managing those
options that can be met in the
servers file (located in the same directory
as
config) - options for network layers are managed by interfaces and classes
of the
org.tmatesoft.svn.core.auth package.
Every
SVN*
Client's public constructor receives an
ISVNOptions
as a driver of the run-time configuration options.
SVNClientManager also has
got several
newInstance() methods that receive an options driver. Thus it's simpe
to implement a specific options driver to
ISVNOptions and use it instead of a default one.
However if you are not interested in customizing the run-time configuration area
you can use a default driver which uses config info from the default SVN configuration area (see
above).
Use
SVNWCUtil to get a default options driver, like this:
import org.tmatesoft.svn.core.wc.ISVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
...
ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
SVNClientManager clientManager = SVNClientManager.newInstance(options, "name", "password");
...
If you would like to have the default configuration area in a place different
from the SVN default one, you should provide a preferred path to the config
directory like this:
import org.tmatesoft.svn.core.wc.ISVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
...
File defaultConfigDir = new File("way/to/your/config/dir");
ISVNOptions options = SVNWCUtil.createDefaultOptions(defaultConfigDir, true);
SVNClientManager clientManager = SVNClientManager.newInstance(options, "name", "password");
...
In this case in the specified directory SVNKit will create necessary configuration files (in particular
config and
servers) which
are absolutely identical to those
default ones (without any user's edits) located in the SVN config area.
Read also this
Subversion book chapter on runtime configuration area.
addIgnorePattern
public void addIgnorePattern(String pattern)
Adds a new particular ignore pattern to global
ignore patterns.
pattern - an ignore pattern to be added
applyAutoProperties
public Map applyAutoProperties(File file,
Map target) Collects and puts into a
Map all
autoproperties specified for the file name pattern matched by the
target file name.
If
fileName matches any known file name pattern then
all properties set for that pattern will be collected and
placed into
target.
For one file name pattern there can be several autoproperties set,
delimited by ";".
file - a target filetarget - a Map that will receive
autoproperties
deleteAutoProperty
public void deleteAutoProperty(String pattern)
Removes a particular autoproperty by specifying a file name
pattern.
pattern - a file name pattern
deleteIgnorePattern
public void deleteIgnorePattern(String pattern)
Removes a particular global ignore pattern.
pattern - a patterna to be removed
getAutoProperties
public Map getAutoProperties()
Returns autoproperties as a
Map
where each key is a file name pattern and the corresponding
value is a string in the form of
"propName=propValue".
- a
Map containing autoproperties
getIgnorePatterns
public String[] getIgnorePatterns()
Returns all the global ignore patterns.
The global ignore patterns describe the names of
files and directories that SVNKit should ignore during status, add and
import operations. Similar to the
'global-ignores' option that can be found in the SVN's
config
file under the
[miscellany] section.
- an array of patterns (that usually contain wildcards)
that specify file and directory names to be ignored until
they are versioned
getKeywordDateFormat
public DateFormat getKeywordDateFormat()
getMergerFactory
public ISVNMergerFactory getMergerFactory()
Returns a factory object which is responsible for creating
merger drivers.
- a factory that produces merger drivers
for merge operations
getPropertyValue
public String getPropertyValue(String propertyName)
Returns the value of a property from the [svnkit] section
of the config file. Currently not used.
propertyName - a SVNKit specific config property name
- the value of the property
isAuthStorageEnabled
public boolean isAuthStorageEnabled()
Determines if the authentication storage is enabled.
The auth storage is used for disk-caching of all
authentication information: usernames, passwords, server certificates,
and any other types of cacheable credentials.
This option corresponds to the
'store-auth-creds' option that can be found
in the SVN's
config file under the
[auth] section.
- true if auth storage
is enabled, otherwise false
isIgnored
public boolean isIgnored(String name)
Determines if a file is ignored according to the
global ignore patterns.
The global ignore patterns describe the names of
files and directories that SVNKit should ignore during status, add and
import operations. Similar to the
'global-ignores' option that can be found in the SVN's
config
file under the
[miscellany] section.
- true if the file
is ignored, otherwise false
isUseAutoProperties
public boolean isUseAutoProperties()
Determines if the autoproperties option is enabled.
Autoproperties are the properties that are automatically set
on files when they are added or imported.
This option corresponds to the
'enable-auto-props' option
that can be found in the SVN's
config file under the
[miscellany] section.
- true if autoproperties
are enabled, otherwise false
isUseCommitTimes
public boolean isUseCommitTimes()
Determines if the commit-times option is enabled.
The commit-times option makes checkout/update/switch/revert operations put
last-committed timestamps on every file they touch.
This option corresponds to
the
'use-commit-times' option that can be found in the
SVN's
config file under the
[miscellany] section.
- true if commit-times
are enabled, otherwise false
setAuthStorageEnabled
public void setAuthStorageEnabled(boolean storeAuth)
Enables or disables the authentication storage.
The auth storage is used for disk-caching of all
authentication information: usernames, passwords, server certificates,
and any other types of cacheable credentials.
This option corresponds to the
'store-auth-creds' option that can be found
in the SVN's
config file under the
[auth] section.
storeAuth - true to
enable the auth storage, false
to disable
setAutoProperties
public void setAutoProperties(Map autoProperties)
Sets autoproperties that will be automatically put on all files
that will be added or imported.
There can be several properties specified for one file pattern -
they should be delimited by ";".
autoProperties - a Map which keys are file
name patterns and their values are strings
in the form of "propName=propValue"
setAutoProperty
public void setAutoProperty(String pattern,
String properties) Sets an autoproperty - binds a file name pattern with a
string in the form of "propName=propValue".
pattern - a file name pattern (usually containing
wildcards)properties - a property for pattern
setIgnorePatterns
public void setIgnorePatterns(String[] patterns)
Sets global ignore patterns.
The global ignore patterns describe the names of
files and directories that SVNKit should ignore during status, add and
import operations. Similar to the
'global-ignores' option that can be found in the SVN's
config
file under the
[miscellany] section.
For example, to set all
.exe files to be ignored include
"*.exe" pattern into
patterns.
If
patterns is
null or
empty then all the patterns will be removed.
patterns - an array of patterns (that usually contain wildcards)
that specify file and directory names to be ignored until
they are versioned
setMergerFactory
public void setMergerFactory(ISVNMergerFactory merger)
Sets a factory object which is responsible for creating
merger drivers.
merger - a factory that produces merger drivers
for merge operations
setPropertyValue
public void setPropertyValue(String propertyName,
String propertyValue) Sets the value of a property from the [svnkit] section
of the config file. Currently not used.
propertyName - a SVNKit specific config property namepropertyValue - a new value for the property; if
null the
property is removed
setUseAutoProperties
public void setUseAutoProperties(boolean useAutoProperties)
Enables or disables the autoproperties option.
Autoproperties are the properties that are automatically set
on files when they are added or imported.
This option corresponds to the
'enable-auto-props' option
that can be found in the SVN's
config file under the
[miscellany] section.
useAutoProperties - true to
enable autoproperties, false
to disable
setUseCommitTimes
public void setUseCommitTimes(boolean useCommitTimes)
Enables or disables the commit-times option.
The commit-times option makes checkout/update/switch/revert operations put
last-committed timestamps on every file they touch.
This option corresponds to
the
'use-commit-times' option that can be found in the
SVN's
config file under the
[miscellany] section.
useCommitTimes - true to
enable commit-times, false
to disable