...
trunk = PATH
Anchor svn.trunk svn.trunk a path to SVN projecttrunk
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 projectbranches
directory relative to the SVN project URL. There can be more than onebranches
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 projecttags
directory relative to the SVN project URL. There can be more than onetags
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 projectshelves
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 withexcludeTags
. 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 withexcludeBranches
. 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 forincludePath
, 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 onedefault
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 everyINTERVAL
. 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 isfalse
.triggerSvnPostReceive = [true|false]
Anchor svn.triggerSvnPostReceive svn.triggerSvnPostReceive Iftrue
, 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 totrue
, SubGit will always run Git garbage collectiongit
gc--auto
. Whenfalse
it won't run the collection. A numeric valueN
represents a number of revisions; SubGit will invokegit
gc--auto
everyN
revisions.keepGitCommitTime = [true|false]
Anchor svn.keepGitCommitTime svn.keepGitCommitTime Whentrue,
SVN commits will have the same dates as corresponding Git commits, even if this violates monotonic increase of commit dates from revision to revision. Whenfalse
, 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 isfalse
.
a pattern that represents revision properties to be set when a Git commit is translated to SVN, comma or space separated. Supported values are:revisionProperties = PATTERN
Anchor svn.revisionProperties svn.revisionProperties author
– setssubgit:author
as the author of Git commit.committer –
setssubgit:committer
as the committer of Git commitdate
– setssubgit:date
Git commit creation date in a form "YY-MM-DD hh:mm:ss Z".log
– setssubgit:log
as the Git commit message.commit
– setssubgit:commit
as the Git commit SHA-1 hash.svnUser
– setssubgit:svnUser
as the SVN user SubGit uses to create a revision.
There are two ways to set the PATTERN:
the first is just list the values:
Code Block language text theme FadeToGrey title revisionProperties list syntax revisionProperties = author,date,log
In this case, SubGit will set SVN the following revision properties:
Code Block language text theme FadeToGrey title SVN 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 language text theme FadeToGrey title revisionProperties 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 language text theme FadeToGrey title SVN revision properties with custom namespace git:author = <author> git:date = <date> git:log = <log>
a pattern consisting of placeholders that construct SVN commit message when a Git commit is being translated to SVN. There are several acceptable placeholders:svnCommitMessage = PATTERN
-
%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 language text theme FadeToGrey title svnCommitMessage svnCommitMessage = Git: %author\n%commit@%branch\\n%message
and then a commit has been pushed to the mirrored Git repository:
Code Block language text theme FadeToGrey title Git 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 language text theme FadeToGrey title SVN 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 -----------------------------------------------------------------
-
gitCommitMessage = PATTERN
allowBranchReplacement = [true|false]
allowReplacementBranches = PATH
allowBranchDeletion = [true|false]
allowDeletionBranches = PATH
allowForcePush = [true|false]
cleanStaleRefLocks = [true|false]
...