Page tree

Versions Compared

Key

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

...

  • 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.
     
  • branches = PATH
    Anchor
    svn.branches
    svn.branches

    a path to SVN project branches directory relative to the SVN project URL. 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.tags
    svn.tags

    a 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.
     
  • shelves = PATH
    Anchor
    svn.shelves
    svn.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.excludeBranches
    svn.excludeBranches

    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. For more details see "Branches and Tags mapping" user manual.

  • excludeTags = SIMPLE_PATTERN
    Anchor
    svn.excludeTags
    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 = PATTERN
    Anchor
    svn.includePath
    svn.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.excludePath
    svn.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.auth
    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
    Anchor
    svn.minimalRevision
    svn.minimalRevision

    minimal SVN repository revision number the import/mirror should start from.
     
  • fetchInterval = 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.

...

    • the first is just list the values:

      Code Block
      languagetext
      themeFadeToGrey
      titlerevisionProperties list syntax
      revisionProperties = author,date,log

      In this case, SubGit will set SVN the following revision properties:

      Code Block
      languagetext
      themeFadeToGrey
      titleSVN revision properties
      subgit:author = <author>
      subgit:date = <date>
      subgit:log = <log>
    • Another way is to set values along with some custom namespace, e.g. for custom namespace git:

      Code Block
      languagetext
      themeFadeToGrey
      titlerevisionProperties syntax with custom namespace
      revisionProperties = git:author=author,git:date=date,git:log=log

      In such case SubGit will set the SVN revision properties using that exact git namespace:

      Code Block
      languagetext
      themeFadeToGrey
      titleSVN revision properties with custom namespace
      git:author = <author>
      git:date = <date>
      git:log = <log> 
  • svnCommitMessage = PATTERN
    Anchor
    svn.svnCommitMessage
    svn.svnCommitMessage

    a pattern consisting of placeholders that construct SVN commit message when a Git commit is being translated to SVN. There are several acceptable placeholders:
    •  %author    = Git author
    • %committer = Git committer
    • %date      = Git commit date
    • %message   = original message
    • %note            = Git commit note stored under refs/notes/commits
    • %note(refs/notes/namespace) = Git commit note stored under refs/notes/namespace
    • %commit    = Git commit hash
    • %svnUser     = Subversion username
    • %branch       = Subversion branch
    • \n                  = newline feed
       

    For example, if the svnCommitMessage was set like this:

    Code Block
    languagetext
    themeFadeToGrey
    titlesvnCommitMessage
    svnCommitMessage = Git: %author\n%commit@%branch\\n%message

    and then a commit has been pushed to the mirrored Git repository:

    Code Block
    languagetext
    themeFadeToGrey
    titleGit commit
    $ git log -v
    commit 161c0bc44517c21d8eb24b720dad71d724b915f9
    Author: John Doe <johndoe@example.com>
    Date:   Thu Jun 29 18:25:04 2017 +0500
    
        svnCommitMessage example

    respective SVN revision will look like this:

    Code Block
    languagetext
    themeFadeToGrey
    titleSVN revision 196
    -----------------------------------------------------------------
    r196 | johndoe | 2017-06-29 18:25:04 +0500 (Thu, 29 Jun 2017) |
    Changed paths:
       M /project1/trunk
       M /project1/trunk/source.txt
    
    Git: John Doe <johndoe@example.com>
    161c0bc44517c21d8eb24b720dad71d724b915f9@trunk
    svnCommitMessage example
    -----------------------------------------------------------------

...