Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

[SVN]

[AUTH]

...

...

...

...

  • sshKeyPassphrase
  • logs = PATHsslClientCertFile
  • anchorsslClientCertPassphrasecore.logscore.logsa path to the directory where SubGit 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. logLevel = [info|finer|finest] Anchorcore.loglevelcore.loglevelSubGit logs verbosity level. There are three levels:
    • INFO – default level, least verbose, reflects import/mirror process steps.

    • FINER – more verbose, Subgit logs every action it performs.

    • FINEST – most verbose, logs everything, including whole network traffic with all the payload.

    The values are case-insensitive. Default log level is INFO.

    shared = [true|false] Anchorcore.sharedcore.shareda boolean value, can be set to true or false.When true, all files in the Git repository will be made group-writable; false will set all the files owner writable only. The option must be true when more than one system account is used to work with this repository. The default is false.
     authorsFile = PATH Anchorcore.authorsFilecore.authorsFilea path to the authors mapping file or authors mapping helper program:
    • authors mapping file – a text file with explicit authors mapping:

      Code Block
      languagetext
      themeFadeToGrey
      titleauthors mapping syntax
      svn_username = Git User <gituser@example.com>
    • authors helper program – an executable authors mapping helper program and its optional arguments.
    Find more details on authors mapping in the authors mapping user manual.
    There could be more than one authorsFile options specified, they will be processed from the last to the first until the mapping is obtained. authorsFileEncoding = ENCODING Anchorcore.authorsFileEncodingcore.authorsFileEncodingencoding in which authors mapping information is present. The default value is UTF8.
     
  • defaultDomain = DOMAIN

    domain to be used to generate Git committer email when authors mapping is not defined or does not provide an email address for a particular committer.
     
  • failSafe = [auto|svn|git] Anchorcore.failSafecore.failSafea way SubGit handles translation failures. There are three possible options:
    • auto – failed translation results in commits or pushes to be blocked on the side to which translation has failed.
    • svn – commits to Subversion are never being blocked.
    • git – pushes to Git are never being blocked.
    Find more details in "Error recover" user manual. pathEncoding = ENCODING Anchorcore.pathEncodingcore.pathEncoding
    encoding to be used to store paths in Git tree objects. The default value is UTF8.
     
    gitPath = PATH Anchorcore.gitPathcore.gitPath
    a path to Git executable. If this option is set, Git executable will be used to stream large files and perform Git garbage collection that can significantly decrease memory and disk space consumption.
     
    streamFileThreshold = SIZE Anchorcore.streamFileThresholdcore.streamFileThreshold
    file size in bytes. SubGit loads the entire file into memory if its size less than this threshold; if the file is larger than the threshold, SubGit sends it as a stream. The option is not set by default, but SubGit sets the threshold to 50MB when the option is not set, so default threshold is 50MB. Note, the bigger the threshold is, the more likely to run into OutOfMemory error.
     
    javaHome = PATH Anchorcore.javaHomecore.javaHomea path to Java home directory; this Java RE will be used to run hooks.

up

...

    • file://
    • svn://
    • svn+ssh://
    • http://
    • https:// 

[TRANSLATE]

[DAEMON]

[DAEMON "SHARED"]

[CONFIG]

[HOOKS]

[CORE]

Anchor
core
core

  • logs = PATH
    Anchor
    core.logs
    core.logs

    a path to the directory where SubGit 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. 
  • logLevel = [info|finer|finest]
    Anchor
    core.loglevel
    core.loglevel

    SubGit logs verbosity level. There are three levels:
    • INFO – default level, least verbose, reflects import/mirror process steps.

    • FINER – more verbose, Subgit logs every action it performs.

    • FINEST – most verbose, logs everything, including whole network traffic with all the payload.

    The values are case-insensitive. Default log level is INFO.

  • shared = [true|false]
    Anchor
    core.shared
    core.shared

    a boolean value, can be set to true or false.When true, all files in the Git repository will be made group-writable; false will set all the files owner writable only. The option must be true when more than one system account is used to work with this repository. The default is false.
     
  • authorsFile = PATH
    Anchor
    core.authorsFile
    core.authorsFile

    a path to the authors mapping file or authors mapping helper program:

    • authors mapping file – a text file with explicit authors mapping:

      Code Block
      languagetext
      themeFadeToGrey
      titleauthors mapping syntax
      svn_username = Git User <gituser@example.com>
    • authors helper program – an executable authors mapping helper program and its optional arguments.

    Find more details on authors mapping in the authors mapping user manual.
    There could be more than one authorsFile options specified, they will be processed from the last to the first until the mapping is obtained. 
  • authorsFileEncoding = ENCODING
    Anchor
    core.authorsFileEncoding
    core.authorsFileEncoding

    encoding in which authors mapping information is present. The default value is UTF8.

     
  • defaultDomain = DOMAIN

    domain to be used to generate Git committer email when authors mapping is not defined or does not provide an email address for a particular committer.
     
  • failSafe = [auto|svn|git]
    Anchor
    core.failSafe
    core.failSafe

    a way SubGit handles translation failures. There are three possible options:
    • auto – failed translation results in commits or pushes to be blocked on the side to which translation has failed.
    • svn – commits to Subversion are never being blocked.
    • git – pushes to Git are never being blocked.
    Find more details in "Error recover" user manual
  • pathEncoding = ENCODING
    Anchor
    core.pathEncoding
    core.pathEncoding

    encoding to be used to store paths in Git tree objects. The default value is UTF8.
     
  • gitPath = PATH
    Anchor
    core.gitPath
    core.gitPath

    a path to Git executable. If this option is set, Git executable will be used to stream large files and perform Git garbage collection that can significantly decrease memory and disk space consumption.
     
  • streamFileThreshold = SIZE
    Anchor
    core.streamFileThreshold
    core.streamFileThreshold

    file size in bytes. SubGit loads the entire file into memory if its size less than this threshold; if the file is larger than the threshold, SubGit sends it as a stream. The option is not set by default, but SubGit sets the threshold to 50MB when the option is not set, so default threshold is 50MB. Note, the bigger the threshold is, the more likely to run into OutOfMemory error.
     
  • javaHome = PATH
    Anchor
    core.javaHome
    core.javaHome

    a path to Java home directory; this Java RE will be used to run hooks.

up

[SVN]
Anchor
svn
svn

  • url = URL
    Anchor
    svn.url
    svn.url

    SVN project URL to be used for import/mirror. Supported protocols:
    • file://
    • svn://
    • svn+ssh://
    • http://
    • https:// 
  • trunk = PATH
    Anchor
    svn.trunk
    svn.trunk

    a path to SVN project trunk relative to the SVN project URL. For more details see "Branches and Tags mapping" user manual.
     
    shelves
  • branches = PATH
    Anchor
    svn.

    shelves

    branches
    svn.

    shelves

    branches

    a path to SVN project shelves branches directory relative to the SVN project URL; this is special directory intended to store commits in some ambiguous situations when SubGit is unable to determine branch name where those particular commits belong to, find more details in the "What are shelves really?" blog post.
     
    excludeBranches = SIMPLE_PATTERN
    . There can be more than one branches option in a configuration. For more details see "Branches and Tags mapping" user manual.

  • tags = PATH
    Anchor
    svn.

    excludeBranches

    tags
    svn.

    excludeBranches

    tags

    a string that represents a branch or tag name to be excluded from translation. It can be either full branch or tag name or a name pattern with one wildcard. Interchangeable with excludeTags.path to SVN project tags directory relative to the SVN project URL. There can be more than one tags option in a configuration. For more details see "Branches and Tags mapping" user manual.
     
    excludeTags
  • shelves =

    SIMPLE_PATTERN

    PATH
    Anchor
    svn.

    excludeTags

    shelves
    svn.

    excludeTags
    a string that represents a branch or tag name to be excluded from translation. It can be either full branch or tag name or a name pattern with one wildcard. Interchangeable with excludeBranches. For more details see "Branches and Tags mapping" user manual.
     
    includePath =

    shelves

    a path to SVN project shelves directory relative to the SVN project URL; this is special directory intended to store commits in some ambiguous situations when SubGit is unable to determine branch name where those particular commits belong to, find more details in the "What are shelves really?" blog post.
     
  • excludeBranches = SIMPLE_PATTERN
    Anchor
    svn.

    includePath

    excludeBranches
    svn.

    includePath

    excludeBranches

    a string pattern that represents files a branch or directories tag name to be included in translation. There are few rules that apply to the pattern, find the details in  excluded from translation. It can be either full branch or tag name or a name pattern with one wildcard. Interchangeable with excludeTags. For more details see "Branches and Tags mapping" user user manual. 

  • excludePath

    excludeTags = SIMPLE_PATTERN
    Anchor
    svn.

    excludePath

    excludeTags
    svn.

    excludePath

    excludeTags

    opposite for includePath, a string pattern that represents files a branch or directories tag name to be excluded from translation. There are few rules that apply to the pattern, find the details in  It can be either full branch or tag name or a name pattern with one wildcard. Interchangeable with excludeBranches. For more details see "Branches and Tags mapping" user user manual.
     
  • auth = [default,option1,…]

    includePath = PATTERN
    Anchor
    svn.

    auth

    includePath
    svn.

    auth
    comma-separated list of [auth] sections IDs where Subversion credentials are defined. Credentials will be used both for read-only and write operations, and it is recommended to define credentials of an account that has full access to the Subversion repository. There is one default section from scratch.
     
    minimalRevision = REVISION

    includePath

    a string pattern that represents files or directories to be included in translation. There are few rules that apply to the pattern, find the details in  "Branches and Tags mapping" user manual.
     
  • excludePath = PATTERN
    Anchor
    svn.

    minimalRevision

    excludePath
    svn.

    minimalRevision
    minimal SVN repository revision number the import/mirror should start from.
     
    fetchInterval = INTERVAL

    excludePath

    opposite for includePath, a string pattern that represents files or directories to be excluded from translation. There are few rules that apply to the pattern, find the details in  "Branches and Tags mapping" user manual.
     
  • auth = [default,option1,…]
    Anchor
    svn.

    fetchInterval

    auth
    svn.

    fetchIntervaltime interval in seconds. SubGit will fetch changes from SVN every INTERVAL. The default value is 60

    auth

    comma-separated list of [auth] sections IDs where Subversion credentials are defined. Credentials will be used both for read-only and write operations, and it is recommended to define credentials of an account that has full access to the Subversion repository. There is one default section from scratch.
     
  • connectTimeout

    minimalRevision =

    TIMEOUT

    REVISION
    Anchor
    svn.

    connectTimeout

    minimalRevision
    svn.

    connectTimeout

    minimalRevision

    SVN connection timeout in seconds. The default value is 300 secondsminimal SVN repository revision number the import/mirror should start from.
     
    readTimeout
  • fetchInterval =

    TIMEOUT

    INTERVAL
    Anchor
    svn.fetchInterval
    svn.fetchInterval

    time interval in seconds. SubGit will fetch changes from SVN every INTERVAL. The default value is 60.
     
  • connectTimeout = TIMEOUT
    Anchor
    svn.connectTimeout
    svn.connectTimeout

    SVN connection timeout in seconds. The default value is 300 seconds.
     
  • readTimeout = TIMEOUT
    Anchor
    svn.readTimeout
    svn.readTimeout

    SVN connection read timeout in seconds. The default value is 600 seconds.
     
  • httpSpooling = [true|false]
    Anchor
    svn.httpSpooling
    svn.httpSpooling

    enable HTTP requests spooling to prevent server-side timeout when request processing takes a long time. The default value is false.
     
  • triggerSvnPostReceive = [true|false]
    Anchor
    svn.triggerSvnPostReceive
    svn.triggerSvnPostReceive

    If true, SubGit invokes user-post-receive hook during changes translation from SVN side to Git repository, otherwise it doesn't. This option exerts influence on SVN-to-Git translation only, when SubGit translates changes from Git to SVN it invokes hooks irrespective of this option.
     
  • triggerGitGC = [true|false|N]
    Anchor
    svn.triggerGitGC
    svn.triggerGitGC

    If the settings is set to true, SubGit will always run Git garbage collection git gc --auto. When false it won't run the collection. A numeric value N represents a number of revisions; SubGit will invoke git gc --autoevery N revisions.
     
  • keepGitCommitTime = [true|false]
    Anchor
    svn.keepGitCommitTime
    svn.keepGitCommitTime

    When true, SVN commits will have the same dates as corresponding Git commits, even if this violates monotonic increase of commit dates from revision to revision. When false, SubGit will try to preserve Git commit dates while translation to SVN, but it will guarantee SVN dates to increase monotonically from revision to revision. The default value is false.

...

  • userName = NAME
    Anchor
    auth.userName
    auth.userName

    a username that is used to log into the Subversion repository. 
     
  • password = PASSWORD
    Anchor
    auth.password
    auth.password

    user password that is used to log into the Subversion repository. 
  • sshKeyFile = PATH
    Anchor
    auth.sshKeyFile
    auth.sshKeyFile

    a path to SSH key file in case if SVN repository is supposed to be accessed over 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. 
  • sshKeyPassphrase = PASSPHRASE
    Anchor
    auth.sshKeyPassphrase
    auth.sshKeyPassphrase

    passphrase for the SSH key.
     
  • sslClientCertFile = PATH
    Anchor
    auth.sslClientCertFile
    auth.sslClientCertFile

    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. 
  • sslClientCertPassphrase sslClientCertPassphrase = PASSPHRASE
    Anchor
    auth.sslClientCertPassphrase
    auth.sslClientCertPassphrase

    passphrase for the SSL client certificate.
     
  • passwords = PATH
    Anchor
    auth. passwords
    auth. passwords

    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.
     
  • credentialHelper = PATH
    Anchor
    auth.credentialHelper
    auth.credentialHelper

    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 in subgit/samples directory. 
  • subversionConfigurationDirectory = [PATH|@default@]
    Anchor
    auth.subversionConfigurationDirectory
    auth.subversionConfigurationDirectory

    a path to Subversion configuration directory or @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. 
  • useDefaultSubversionConfigurationDirectory = [true|false]
    Anchor
    auth.useDefaultSubversionConfigurationDirectory
    auth.useDefaultSubversionConfigurationDirectory

    a boolean value that can be set to true or false. When true default user SVN directory ~/.subversion is used; when false, path that is set by subversionConfigurationDirectory option is used.

up

[TRANSLATE]
Anchor
translate
translate

Anchordaemondaemon
  • externals = [true|false]
    Anchor
    translate.externals
    translate.externals

    a boolean value that can be set to true or false. SubGit does not support translating svn:externals to Git submodules and back. However, when this option is set to true, SubGit creates special .gitsvnextmodules files in the root of every Git commit. These files store information on all the svn:externals definitions found in a given SVN branch. When false, SubGit ignores any svn:externals properties. The default is false. 
  • eols = [true|false]
    Anchor
    translate.eols
    translate.eols

    a boolean value that can be set to true or false. When true, .gitattributes files in Git are syncronized with svn:eol-style and svn:mime-type properties in SVN repository. When false.gitattributes from Git is translated to .gitattributes file in SVN as any other normal file. The default is true. 
  • ignores = [true|false]
    Anchor
    translate.ignores
    translate.ignores

    a boolean value that can be set to true or false. When true, .gitignore in Git is translated to svn:ignore and vice versa. When false.gitignore from Git is translated to .gitignore file in SVN as any other normal file. The default is true.
     
  • otherProperties = [true|false]
    Anchor
    translate.otherProperties
    translate.otherProperties

    a boolean value that can be set to true or false. When true, SubGit translates SVN properties (except svn:eol-style, svn:mime-type, svn:ignore, svn:executable, svn:special) to .gitattributes. When false, it doesn't. 
  • renames = [true|false]
    Anchor
    translate.renames
    translate.renames

    a boolean value that can be set to true or false. When true, SubGit tracks renamed files in Git and writes this information in SVN metadata. When false, it doesn't. The default value is true. 
  • followFirstParent = [true|false]
    Anchor
    translate.followFirstParent
    translate.followFirstParent

    a boolean value that can be set to true or false. 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 to true, SubGit always sends merge commit to the branch of its first parent unless it leads to branch replacement in SVN repository. When false, 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 is false.
    useGlueFetch = [true|false] Anchortranslate.useGlueFetchtranslate.useGlueFetcha boolean value that can be set to true or false. When true, SubGit uses SVN requests of a special form that allows to translate SVN repository faster at expense of higher memory consumption. When false, SubGit uses regular requests. The default is false.
     createEmptySvnCommits = [true|false] Anchortranslate.createEmptySvnCommitstranslate.createEmptySvnCommits
    a boolean value that can be set to true or false. When true, SubGit creates empty commits in SVN project even there's nothing to send from Git side (for example, if a branch isn't tracked). When false, empty commits are not be created.
     
  • createEmptyGitCommits = [true|false]

    a boolean value that can be set to true or false. When true, SubGit creates empty commits in Git repository even there's nothing to send from Git side (for example, if a branch isn't tracked). When false, 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 to UTC-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
    languagetext
    themeFadeToGrey
    titlecommit example
    commit 135242956354e70976f9c2ceec351f34d45d5d28
    Author: user <user@example.com>
    Date:   Fri Jun 23 02:37:32 2017 -0400
    
      changed source.cpp
[DAEMON]
  • idleTimeout = TIMEOUT Anchordaemon.idleTimeoutdaemon.idleTimeouttimeout 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 is infinity which means the process won't exit.
     launchTimeout = TIMEOUT Anchordaemon.launchTimeoutdaemon.launchTimeouttime 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.
     classpath = PATH Anchordaemon.classpathdaemon.classpathexplicit translation process classpath or path to the directory that contains jars that have to be on the process classpath
    false.


  • useGlueFetch = [true|false]
    Anchor
    translate.useGlueFetch
    translate.useGlueFetch

    a boolean value that can be set to true or false. When true, SubGit uses SVN requests of a special form that allows to translate SVN repository faster at expense of higher memory consumption. When false, SubGit uses regular requests. The default is false.
  • createEmptySvnCommits = [true|false]
    Anchor
    translate.createEmptySvnCommits
    translate.createEmptySvnCommits

    a boolean value that can be set to true or false. When true, SubGit creates empty commits in SVN project even there's nothing to send from Git side (for example, if a branch isn't tracked). When false, empty commits are not be created.
  • createEmptyGitCommits = [true|false]

    a boolean value that can be set to true or false. When true, SubGit creates empty commits in Git repository even there's nothing to send from Git side (for example, if a branch isn't tracked). When false, 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 to UTC-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
    languagetext
    themeFadeToGrey
    titlecommit example
    commit 135242956354e70976f9c2ceec351f34d45d5d28
    Author: user <user@example.com>
    Date:   Fri Jun 23 02:37:32 2017 -0400
    
      changed source.cpp

up

[DAEMON]
Anchor
daemon
daemon

  • idleTimeout = TIMEOUT
    Anchor
    daemon.idleTimeout
    daemon.idleTimeout

    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 is infinity which means the process won't exit.

  • launchTimeout = TIMEOUT
    Anchor
    daemon.launchTimeout
    daemon.launchTimeout

    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.

  • classpath = PATH
    Anchor
    daemon.classpath
    daemon.classpath

    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 is subgit/lib.

  • pidFile = PATH
    Anchor
    daemon.pidFile
    daemon.pidFile

    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 is 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
  • logs = PATH
    Anchor
    daemon.logs
    daemon.logs

    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.


  • javaHome = PATH
    Anchor
    daemon.javaHome
    daemon.javaHome

    a path to Java home directory that should be used the daemon to start.

up

[DAEMON "SHARED"]
Anchor
daemon.shared
daemon.shared

  • directory = PATH
    Anchor
    daemon.shared.directory
    daemon.shared.directory

    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.

up

[CONFIG]
Anchor
config
config

  • include = PATH
    Anchor
    config.include
    config.include

    a path to . The default is subgit/lib.
     pidFile = PATH Anchordaemon.pidFiledaemon.pidFilea 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 is subgit/daemon.pid.
     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.

up

[HOOKS]
Anchor
hooks
hooks

  • javaOptions = OPTIONS
    Anchor

    daemon

    hooks.javaOptions

    daemon

    hooks.javaOptions

    java Java options string the daemon hook process should start with. The default is

    No Format
    -noverify -client -Djava.awt.headless=true
     logs
     -Xint -Djava.awt.headless=true
  • debug = [true|false]
    Anchor
    hooks.debug
    hooks.debug

    a boolean value that can be set to true or false. When true, SubGit enables all debug output messages in hook scripts SubGit installs, so they appear every push to Git repository. If false, SubGit leaves all the messages commented. The default value is false.
  • directory = PATH
    Anchor

    daemon

    hooks.

    logs

    directory

    daemon

    hooks.

    logs

    directory

    a path to the directory where SubGit daemon logs are being storedwhich 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.
  •  

  • javaHome = PATH<a name="daemon.javaHome">

    a path to Java home directory that should be used the daemon to start.

up