Page tree

Versions Compared

Key

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

...

  • 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 the gitCommitMessage was set like this:


    Code Block
    languagetext
    themeFadeToGrey
    titlegitCommitMessage
    gitCommitMessage = SVN %revision@%branch\\n%message

    Then, some changes have been committed to the SVN repository:


    Code Block
    languagetext
    themeFadeToGrey
    titleSVN 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
    languagetext
    themeFadeToGrey
    titleGit 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



  • allowBranchReplacement = [true|false]
    Anchor
    svn.allowBranchReplacement
    svn.allowBranchReplacement

    When true, SVN branches replacement is allowed, otherwise it isn't allowed.

  • allowReplacementBranches = PATH
    Anchor
    svn.allowReplacementBranches
    svn.allowReplacementBranches

    a path pattern relative to svn.url that points to SVN branches which are allowed to be replaced. This option works as an exception when allowBranchReplacement is set to false: it allows replacing those SVN branches when new Git changes are being pushed to the SubGit-mirrored Git repository.

  • allowBranchDeletion = [true|false]
    Anchor
    svn.allowBranchDeletion
    svn.allowBranchDeletion

    When true, SVN branches removing is allowed, otherwise it isn't allowed.

  • allowDeletionBranches = PATH
    Anchor
    svn.allowDeletionBranches
    svn.allowDeletionBranches

    a path pattern relative to url pointing to SVN branches which are allowed to be deleted. This option works as an exception allowBranchReplacement is set to false: 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 to false SubGit rejects any attempts to perform non-fast-forward updates for those refs which are synchronized with SVN repository. When true, such updates are allowed.

  • cleanStaleRefLocks = [true|false]
    Anchor
    svn.cleanStaleRefLocks
    svn.cleanStaleRefLocks

    When set to true, SubGit automatically deletes any stale Git ref locks – i.e. ref lock files GIT_REPO/refs/**/*.lock that exist more than a minute. If false, SubGit won’t delete lock files, that means any stale ref locks has to be resolved manually. The default is true.

up

[AUTH "DEFAULT"]
Anchor
auth
auth


  • 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 = 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

  • 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]
    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 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
    hooks.javaOptions
    hooks.javaOptions

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

    No Format
    -noverify -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
    hooks.directory
    hooks.directory

    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.

up