...
gitCommitMessage = PATTERN
Anchor svn.gitCommitMessage svn.gitCommitMessage a pattern consisting of placeholders that construct Git commit message when a SVNcommit is being translated to Git. There are several acceptable placeholders:%author
= Git author%committer
= Git committer%date
= date of revision%message
= original message%svnUser
= Subversion username%revision
= Subversion revision, GRN in your notation%branch.
= Subversion branch\n
= newline feed
For example, if thegitCommitMessage
was set like this:Code Block language text theme FadeToGrey title gitCommitMessage gitCommitMessage = SVN %revision@%branch\\n%message
Then, some changes have been committed to the SVN repository:
Code Block language text theme FadeToGrey title SVN revision 197 ----------------------------------------------------------------- r197 | johndoe | 2017-06-29 13:38:02 +0500 (Thu, 29 Jun 2017) | Changed paths: M /project1/trunk/source.txt gitCommitMessage example -----------------------------------------------------------------
Translated Git commit will look like this:
Code Block language text theme FadeToGrey title Git commit $ git log -v commit d5c7c9e2518a5e8942c26d7cda5ace61ddb7c045 Author: John Dow <johndoe@example.com> Date: Thu Jun 29 08:38:02 2017 +0000 SVN 197@trunk gitCommitMessage example
WhenallowBranchReplacement = [true|false]
Anchor svn.allowBranchReplacement svn.allowBranchReplacement true
, SVN branches replacement is allowed, otherwise it isn't allowed.allowReplacementBranches = PATH
Anchor svn.allowReplacementBranches svn.allowReplacementBranches a path pattern relative tosvn.url
that points to SVN branches which are allowed to be replaced. This option works as an exception whenallowBranchReplacement
is set tofalse:
it allows replacing those SVN branches when new Git changes are being pushed to the SubGit-mirrored Git repository.
WhenallowBranchDeletion = [true|false]
Anchor svn.allowBranchDeletion svn.allowBranchDeletion true
, SVN branches removing is allowed, otherwise it isn't allowed.allowDeletionBranches = PATH
Anchor svn.allowDeletionBranches svn.allowDeletionBranches a path pattern relative tourl
pointing to SVN branches which are allowed to be deleted. This option works as an exceptionallowBranchReplacement
is set tofalse:
It allows removing those SVN branches when new Git changes are being pushed to the SubGit-mirrored Git repository.allowForcePush = [true|false]
Anchor svn.allowForcePush svn.allowForcePush When set tofalse
SubGit rejects any attempts to perform non-fast-forward updates for those refs which are synchronized with SVN repository. Whentrue
, such updates are allowed.cleanStaleRefLocks = [true|false]
Anchor svn.cleanStaleRefLocks svn.cleanStaleRefLocks When set totrue
, SubGit automatically deletes any stale Git ref locks – i.e. ref lock filesGIT_REPO/refs/**/*.lock
that exist more than a minute. Iffalse
, SubGit won’t delete lock files, that means any stale ref locks has to be resolved manually. The default istrue
.
[AUTH "DEFAULT"] Anchor auth auth
Anchor | ||||
---|---|---|---|---|
|
a username that is used to log into the Subversion repository.userName = NAME
Anchor auth.userName auth.userName
user password that is used to log into the Subversion repository.password = PASSWORD
Anchor auth.password auth.password
a path to SSH key file in case if SVN repository is supposed to be accessed oversshKeyFile = PATH
Anchor auth.sshKeyFile auth.sshKeyFile svn+ssh
and the key is used for login. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.
passphrase for the SSH key.sshKeyPassphrase = PASSPHRASE
Anchor auth.sshKeyPassphrase auth.sshKeyPassphrase
a path to client SSL client certificate of PKSC#12 format for the case the SVN repository is being accessed over HTTPS and client certificate is used forlog in. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.sslClientCertFile = PATH
Anchor auth.sslClientCertFile auth.sslClientCertFile
passphrase for the SSL client certificate.sslClientCertPassphrase = PASSPHRASE
Anchor auth.sslClientCertPassphrase auth.sslClientCertPassphrase
a path to passwords file; the file contains username/password pairs that are used to log into the Subversion repository. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.passwords = PATH
Anchor auth. passwords auth. passwords
a path to the credential helper program and its optional arguments. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to. The program is expected to be non-interactive (no prompt) and to use Git credential helper input/output format. Sample credential helper script could be found incredentialHelper = PATH
Anchor auth.credentialHelper auth.credentialHelper subgit/samples
directory.
a path to Subversion configuration directory orsubversionConfigurationDirectory = [PATH|@default@]
Anchor auth.subversionConfigurationDirectory auth.subversionConfigurationDirectory @default@
to use current user Subversion configuration and credentials cache. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.
a boolean value that can be set touseDefaultSubversionConfigurationDirectory = [true|false]
Anchor auth.useDefaultSubversionConfigurationDirectory auth.useDefaultSubversionConfigurationDirectory true
orfalse
. Whentrue
default user SVN directory~/.subversion
is used; whenfalse
, path that is set bysubversionConfigurationDirectory
option is used.
[TRANSLATE] Anchortranslate translate
Anchor | ||||
---|---|---|---|---|
|
a boolean value that can be set toexternals = [true|false]
Anchor translate.externals translate.externals true
orfalse
. SubGit does not support translatingsvn:externals
to Git submodules and back. However, when this option is set totrue
, SubGit creates special .gitsvnextmodules
files in the root of every Git commit. These files store information on all thesvn:externals
definitions found in a given SVN branch. Whenfalse
, SubGit ignores anysvn:externals
properties. The default isfalse
.
a boolean value that can be set toeols = [true|false]
Anchor translate.eols translate.eols true
orfalse
. Whentrue
,.gitattributes
files in Git are syncronized withsvn:eol-style
andsvn:mime-type
properties in SVN repository. Whenfalse
.gitattributes
from Git is translated to.gitattributes
file in SVN as any other normal file. The default istrue
.
a boolean value that can be set toignores = [true|false]
Anchor translate.ignores translate.ignores true
orfalse
. Whentrue
,.gitignore
in Git is translated tosvn:ignore
and vice versa. Whenfalse
.gitignore
from Git is translated to.gitignore
file in SVN as any other normal file. The default istrue
.
a boolean value that can be set tootherProperties = [true|false]
Anchor translate.otherProperties translate.otherProperties true
orfalse
. Whentrue
, SubGit translates SVN properties (exceptsvn:eol-style
,svn:mime-type
,svn:ignore
,svn:executable
,svn:special
) to.gitattributes
. Whenfalse
, it doesn't.
a boolean value that can be set torenames = [true|false]
Anchor translate.renames translate.renames true
orfalse
. Whentrue
, SubGit tracks renamed files in Git and writes this information in SVN metadata. Whenfalse
, it doesn't. The default value istrue
.
followFirstParent = [true|false]
Anchor translate.followFirstParent translate.followFirstParent a boolean value that can be set totrue
orfalse
. When SubGit translates a merge commit to SVN revision, it tries to identify an SVN branch to send this commit to. When this option is set totrue
, SubGit always sends merge commit to the branch of its first parent unless it leads to branch replacement in SVN repository. Whenfalse
, SubGit uses a number of heuristics in order to choose SVN branch for a given merge commit; in certain cases, SubGit may send a merge commit to the branch of its second parent. The default isfalse
.
a boolean value that can be set touseGlueFetch = [true|false]
Anchor translate.useGlueFetch translate.useGlueFetch true
orfalse
. Whentrue
, SubGit uses SVN requests of a special form that allows to translate SVN repository faster at expense of higher memory consumption. Whenfalse
, SubGit uses regular requests. The default isfalse
.
createEmptySvnCommits = [true|false]
Anchor translate.createEmptySvnCommits translate.createEmptySvnCommits a boolean value that can be set totrue
orfalse
. Whentrue
, SubGit creates empty commits in SVN project even there's nothing to send from Git side (for example, if a branch isn't tracked). Whenfalse
, empty commits are not be created.
a boolean value that can be set tocreateEmptyGitCommits = [true|false]
true
orfalse
. Whentrue
, SubGit creates empty commits in Git repository even there's nothing to send from Git side (for example, if a branch isn't tracked). Whenfalse
, empty commits are not be created.
timezone = TIMEZONE
UTC based timezone to be used in Git commits. The default is
UTC
.
To set the timezone toUTC-4
the option has to be set as follows:No Format timezone = UTC-4
In this case, the timestamp in translated Git commit is set to that timezone:
Code Block language text theme FadeToGrey title commit example commit 135242956354e70976f9c2ceec351f34d45d5d28 Author: user <user@example.com> Date: Fri Jun 23 02:37:32 2017 -0400 changed source.cpp
[DAEMON] Anchordaemon daemon
Anchor | ||||
---|---|---|---|---|
|
timeout in seconds for background translation process: it exits after being idle for the specified amount. 0 seconds timeout means that translation process exits immediately. Larger timeout values may improve translation performance by reducing translation process startup overhead. The default value isidleTimeout = TIMEOUT
Anchor daemon.idleTimeout daemon.idleTimeout infinity
which means the process won't exit.
time interval in seconds which hook is waiting for the daemon to start. If the daemon doesn't start within that interval the hook reports error "Failed to launch background translation process: timeout waiting for pid file" - in such case it's worth to try to increase this option value. The default value is 5.launchTimeout = TIMEOUT
Anchor daemon.launchTimeout daemon.launchTimeout
explicit translation process classpath or path to the directory that contains jars that have to be on the process classpath. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to. The default isclasspath = PATH
Anchor daemon.classpath daemon.classpath subgit/lib
.
a path to daemon PID file. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to. The default ispidFile = PATH
Anchor daemon.pidFile daemon.pidFile subgit/daemon.pid
.javaOptions = OPTIONS
Anchor daemon.javaOptions daemon.javaOptions Java options string the daemon process should start with. The default is
No Format -noverify -client -Djava.awt.headless=true
a path to the directory where SubGit daemon logs are being stored. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.logs = PATH
Anchor daemon.logs daemon.logs
a path to Java home directory that should be used the daemon to start.javaHome = PATH
Anchor daemon.javaHome daemon.javaHome
[DAEMON "SHARED"] Anchordaemon.shared daemon.shared
Anchor | ||||
---|---|---|---|---|
|
a path to the directory shared daemon uses. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.directory = PATH
Anchor daemon.shared.directory daemon.shared.directory
[CONFIG] Anchorconfig config
Anchor | ||||
---|---|---|---|---|
|
a path to SubGit configuration file that should be included in the current configuration. The options that are defined in the included configuration file are being overridden by the options defined in the including configuration file.include = PATH
Anchor config.include config.include
[HOOKS] Anchorhooks hooks
Anchor | ||||
---|---|---|---|---|
|
javaOptions = OPTIONS
Anchor hooks.javaOptions hooks.javaOptions Java options string the hook process should start with. The default is
No Format -noverify -Xint -Djava.awt.headless=true
a boolean value that can be set todebug = [true|false]
Anchor hooks.debug hooks.debug true
orfalse
. Whentrue
, SubGit enables all debug output messages in hook scripts SubGit installs, so they appear every push to Git repository. Iffalse
, SubGit leaves all the messages commented. The default value isfalse
.
a path to the directory which SubGit usea to install/uninstall/upgrade hooks. The path can be either absolute or relative to the Git repository where import/mirror from SVN is being performed to.directory = PATH
Anchor hooks.directory hooks.directory