Get Started

Release Notes

SubGit 3.3.17 Release Notes

Fixed Bugs:

  • ‘apply patch’ feature did not respect existing executbale bit state, fixed.
  • Stability improvements.

SubGit 3.3.16 Release Notes

Fixed Bugs:

  • Many “timer” threads problem is fixed in Apache SSHD-based support of svn+ssh:// protocol (SVNKIT-767).
  • “svnkit.http.methods” JVM property now has priority over “http-auth-types” option of “servers” file (SVNKIT-766).
  • The order of supported auth types from “http-auth-types” option of “servers” file is now used (SVNKIT-766).

SubGit 3.3.15 Release Notes

Fixed Bugs:

  • Security issue when working through svn+ssh:// protocol: private key was cited in the error messages (SVNKIT-765).
  • “E210004: Handshake failed, data stream ended unexpectedly” bug fixed for svn+ssh:// protocol (SVNKIT-765).
  • SSL certificates problem fixed for Amazon Corretto 11 JDK.
  • Logger threads did not finish correctly and accumulated exhausting system resources for svn+ssh:// protocol.

SubGit 3.3.14 Release Notes


  • Update HEAD to Git reference specified in ‘trunk=’ option (SGT-1337).
  • Support for newer SSH algorithms based on the Apache sshd library (SVNKIT-759).

SubGit 3.3.13 Release Notes

New Feature:

  • An new config option to set the author of the metadata commits - see SGT-1335.

Fixed Bugs:

  • SVN protocol fix: URL-encode path before sending DELETE http request via HttpV2 protocol (SVNKIT-758).
  • Report correct base revision for HTTP protocol (SVNKIT=760).
  • Other fixes in SVN support.

SubGit 3.3.12 Release Notes

Fixed Bugs:

  • If a Git commit contains ASCII control characters, they are removed, not affecting the tranlation process - see SGT-1333.
  • GitLab 14 is now supported - see SGT-1327.
  • License check is fixed.
  • A change of Git reference in subgit/config was applied silently leading into an inconsistent state; now in case of such a change subgit install fails with an error message - see SGT-1332.


  • Triggering user-post-receive hook if subgit install updates any refs (provided svn.triggerSvnPostReceive is true).

SubGit 3.3.11 Release Notes


  • Improved performance in shared daemon mode: removed redundant license checks.
  • Added a new --keep-conflicts option for the apply-patch command.
  • Updated JGit and SVNKit libraries

SubGit 3.3.10 Release Notes

Fixed Bugs:

  • Prevent install and sync processes from running at the same time.


  • Compatibility with GitLab version 13.1.1

SubGit 3.3.9 Release Notes

Fixed Bugs:

  • Possible NPE in JGit library initialization, fixed.


  • When the shared daemon is used, mirror repositories’ polls are distributed evenly within the fetch interval time to avoid load spikes.

SubGit 3.3.8 Release Notes

New Feature:

  • svn.logWindowSize config option added to control SVN log command batch window size; increase it to improve initial configuration and translation performance for huge SVN repositories.

Fixed Bugs:

  • SubGit metadata might be corrupted and lead to translation errors in case of file system access errors, fixed.
  • subgit configure might freeze when running on certain file systems, fixed - see SGT-1308.
  • Possible NPE on subgit install --rebuild-from-revision command, fixed.

SubGit 3.3.7 Release Notes

New Features:

  • New config option svn.useSubGitLock to avoid unnecessary changes in SVN. Set it to ‘false’ for SubGit not to modify subgit:lock property when committing to SVN.

Fixed Bugs:

  • NPE when using relative paths - see SGT-1303
  • Invalid jar file Manifest.MF signature - see SGT-1304
  • GitLab 12 compatibiliy issue - see SGT-1302
  • Support for ‘..’ in .gitignore patterns - see SGT-1301


  • Git core.trustfolderstat option is no longer set to ‘false’ by defaut to avoid performance issues. ‘false’ value of this option is reverted in case it was set explicitly by previous versions of SubGit.
  • Other stability and performance improvements.

SubGit 3.3.6 Release Notes

New Features:

  • New config option core.mapGitCommitter (boolean) for fine-tuning Git to SVN authors mapping: now you can map either Git commit author or committer. By default, Git committers are mapped.

Fixed Bugs:

  • subgit install --rebuild now works on Windows - see SGT-1259
  • subgit install --refetch improvements - see SGT-274 and SGT-1264
  • refs/svn/history/first doesn’t contain authors with empty names anymore - see SGT-1282
  • Git user hooks are now preserved on install --rebuild in local mirror mode - see SGT-1268
  • Double quotes in JSON output are fixed - see SGT-1287
  • ASCII control characters in paths are now translated correctly - see SGT-1278


  • Improved performance for large Git pack files handling
  • Support for 0 revision value as --rebuild-from-revision option argument
  • Support for SVN 1.10 FSFS repository format - see SGT-1260
  • Other stability improvements

SubGit 3.3.5 Release Notes

New Features:

  • Subgit daemon port could be explicitly specified with the daemon.port configuration option.

Fixed bugs:

  • Improved binary files handling by subgit ‘apply-patch’ command.

SubGit 3.3.4 Release Notes

New Features:

  • Shared daemon REST API
  • Improved dealing with user’s limits
  • subgit apply-patch command, that allows applying patches of the specified format to SubGit mirrors; see subgit help apply-patch.
  • Support for Subversion 1.10 repository format over file:// protocol.
  • Support for core.rejectUnmappedGitAuthor option, that allows to reject Git commits with committers not specified in the authors mapping file.
  • Support for svn.refWhitespaceReplacement option, that allows to specify string replacement of a whitespace in Subversion branches or tags.

Fixed Bugs:

SubGit 3.3.3 Release Notes

Fixed Bugs:

  • Files more than 50Mb pushed to Git version 2.11.0 and higher are now translated correctly to SVN (not as empty files). See more details at
  • Potential corruption when translating files more than 50Mb (resulting in “Checksum mismatch” error) is not possible any more.

SubGit 3.3.2 Release Notes

Fixed Bugs:

  • SubGit now rejects push operations that update refs with non-ASCII characters. See more details at
  • Fixed possible NPE when SVN server relies on HTTP digest authentication scheme.
  • Fixed potential dead-lock when working through “file://”” protocol on Linux with older version of “flock” utility.

New Features:

  • “subgit install” command now has exclusive access to repository, so no other SubGit processes can interfere with installation process.
  • New options for “subgit map” command:
    • ”–json” - display output in JSON format;
    • ”–paths-file PATHS_FILE” - read the list of paths to map from a text file: one line per path, URL or Git reference.
  • “subgit install” command does not allow deleting SVN branches and Git refs.
  • Default evaluation period is 7 days; it is possible to extend trial at


  • “subgit install –refetch” command made more efficient by resetting mirror to a more recent revision.
  • Synchronization performance improved on SVN repositories with many revisions mapped to Git commits.

SubGit 3.3.1 Release Notes

SubGit 3.3.1 is a bugfix release. New in SubGit 3.3.1:

Fixed Bugs:

  • Fixed out-of-memory error occurred on Git repositories with huge pack indexes. See more details at
  • Fixed process handle leak on Windows.
  • Fixed Java version check for JRE 10.
  • Fixed potential repository corruption when working through file:// protocol on Linux when interactiing with native Subversion is compiled to use FLOCK instead of POSIX locks. The problem happened when native Subversion commits changes to the SVN repository and SubGit translates Git commits to SVN revisions at the same time. See more details at
  • Fixed false detection of external changes. In some cases when someone committed to SVN near the moment of creating new SVN revision by SubGit that lead to the message about potentially corrupted repository even if the repository was fine. See more details at
  • Fixed “IllegalThreadStateException: process hasn’t exited” error. See more details at
  • Better error message when pushing via SSH and user running SubGit can’t access the uploaded objects. Original error message was “Missing unknown OBJECT_ID”. See more details at
  • When ‘shelves=’ option is not specified any “subgit install” command ran long unnecessary configuration validation that could last several hours on large repository (even if such “subgit install” whould be no-op). See more details at


  • Java 1.8 or newer is required.

SubGit 3.3.0 Release Notes

SubGit 3.3.0 is a feature release. New in SubGit 3.3.0:

New Features:

  • ‘subgit verify’ command introduced that checks the consistency of a mirror; it allows to identify Subversion revisions that are missing in Git repository.
  • Upgrade from version 3.2.7 or older automatically runs subgit verify on a mirror.
  • Minor usability improvements.

SubGit 3.2.7 Release Notes

SubGit 3.2.7 is a bugfix release. New in SubGit 3.2.7:

Fixed Bugs:

  • Fixed potential data loss in Git repository on concurrent changes from both SVN and Git sides with Subversion server 1.9.x. See more details at
  • Fixed potential data loss in Git repository on concurrent changes from both SVN and Git sides when SubGit updates one branch and deletes another one within a single revision. See more details at
  • Minor usability improvements.

SubGit 3.2.6 Release Notes

SubGit 3.2.6 is a minor feature release. New in SubGit 3.2.6:

New Features:

  • branches mapping patterns support multiple asterisks within single segment.

Fixed Bugs:

  • configuration option auth.sshKeyFilePassphrase was not read, fixed.
  • suboptimal initial translation performance in case of single-directory mirror, fixed.
  • various performance improvements.

SubGit 3.2.5 Release Notes

SubGit 3.2.5 is a minor feature release. New in SubGit 3.2.5:

New Features:

  • ‘subgit map’ command introduced that allows to query effective branches and author mappings set up in a mirror repository.

SubGit 3.2.4 Release Notes

SubGit 3.2.4 is a minor bugfix and feature release. New in SubGit 3.2.4:

New Features:

  • Support for svn.allowReplacementBranches and svn.allowDeletionBranches options added that allow to control SVN branch replacement and deletion translation policy for individual branches.

  • Support for svn.gitCommitMessage and svn.svnCommitMessage options that allow specifying message patterns used by SubGit while generating commit messages.

Fixed Bugs:

  • When non-translatable Git commit is synced to SVN and creation of empty SVN revisions is disabled, it might happen that non-translatable Git commit would be lost on later syncs, fixed.
  • Potential minor memory leak on failed sync, fixed.

SubGit 3.2.3 Release Notes

SubGit 3.2.3 is a minor bugfix release. New in SubGit 3.2.3:

New Features:

  • Support for recursive pattern as svn.includePath option value.
  • Git gc is now called periodically on SVN to Git translation to ensure Git repository objects are packed.
  • Support for temporary Git object directories introduced in Git 2.11.

Fixed Bugs:

  • Improved command line help output for some of the commands.
  • Potential SVN repository corruption, when writing to FSFS SVN repository stored in SVN 1.9 format, fixed.

SubGit 3.2.2 Release Notes

SubGit 3.2.2 is a minor bugfix release. New in SubGit 3.2.2:

Fixed Bugs:

  • Registration expiration date was handled incorrectly in version 3.2.1, fixed.

SubGit 3.2.1 Release Notes

SubGit 3.2.1 is a minor feature release. New in SubGit 3.2.1:

New Features:

  • Option svn.allowBranchReplacement added, default is to disable SVN branch replacement when translating Git commits ot SVN.
  • Option svn.allowBranchDeletion added, default is to allow SVN branch deletion when translating Git commits to SVN.
  • Option svn.allowForcePush added, when set to false SubGit rejects any attempts to perform non-fast-forward updates for those refs which are synchronized with SVN repository.

Fixed Bugs:

  • Improved handling of situations when reference is locked, but lock is no longer valid.
  • Translation of SVN replacing symbolic link with a directory did not work properly, fixed.

SubGit 3.2.0 Release Notes

SubGit 3.2.0 is a minor feature release. New in SubGit 3.2.0:

New Features:

  • Improved GitLab integration, see for HOWTO.
  • Support for new 1.9 Subversion FSFS repository format.
  • Improved unsynced commits handling.

Fixed Bugs:

  • Client SSL certificates without passphrase were not supported, fixed.
  • Push of two branches deletion might result in out-of-date error, fixed.
  • Stability improvements.

SubGit 3.1.2 Release Notes

SubGit 3.1.2 is a minor bugfix release. New in SubGit 3.1.2:

New Features:

  • SGT-1076: specify timezone to use in Git commits (default is UTC).

Other Changes:

  • JGit Library updated to v4.2.0

SubGit 3.1.1 Release Notes

SubGit 3.1.1 is a minor bugfix release. New in SubGit 3.1.1:

Fixed bugs:

  • SGT-1056: Branch deletion in Git may overwrite changes in SVN on the same branch, fixed.
  • Improvements in conflicts recovery code.


  • Java 1.7 or newer is required.

SubGit 3.1.0 Release Notes

SubGit 3.1.0 is a minor feature and bugfix release. New in SubGit 3.1.0:

  • SubGit could now be licensed for a number of Git user, i.e. number of user that push to Git/SVN mirror using Git. With Git users registration number of SVN committers is not taken into account.
  • Evaluation period is extended to 30 days.
  • Sync will be now disabled upon evaluation period expiration.

Fixed bugs:

  • Stability and performance improvements.


  • Java 1.7 or newer is required.

SubGit 3.0.0 Release Notes

SubGit 3.0.0 is a major feature release that introduces the following features:

  • Automated SVN project layout detection (subgit configure –layout ‘auto’).
  • Automated out-of-sync state recovery.
  • Single-directory SVN project support.
  • Skip anonymous Git branches translation (branches mapping without shelves option).
  • Translation performance improved.
  • Shared background daemon process to manage multiple mirror repositories on the same host.
  • Script-based authors mapping support.
  • Git credentials helper support to avoid plain-text SVN credentials being part of configuration.
  • Simplified command line options.

SubGit 2.0.3 Release Notes

SubGit 2.0.3 is bug fix release that fixes the following issues:

  • Tranlsation peformance improved for multi-project repositories.
  • Failure to update single Git reference no longer results in translation to stop.

In addition there is the following feature has been added:

  • Subversion pre-revprop-change hook is no longer required for authors mapping to work.

SubGit 2.0.2 Release Notes

SubGit 2.0.2 is bug fix release that fixes the following issues:

  • Potential translation failure on .gitignore rename
  • Issues related to the ‘skip’ option that allows to exclude paths from translation
  • SSL client certificate was ignored when specified on the command line of the ‘import’ command
  • New version of SVNKit library is used that introduces improvements in SSL authentication and GNOME keyring support

In addition there is the following feature has been added:

  • pathEncoding option now supports ‘none’ value to disable path translation

SubGit 2.0.1 Release Notes

SubGit 2.0.1 introduces the following features:

  • Adding a new branch mapping to configuration file no longer requires a full rebuild of a Git repository in case newly mapped branch never existed in Subversion repository.
  • SubGit will now use SSH-agent to authenticate on remote Subversion server when SSH-agent is available.
  • Repositories created with Subversion 1.8 now supported in the local mirror mode.

SubGit 2.0.0 Release Notes

SubGit 2.0.0 introduces the following major features:

  • Support for remote Subversion repositories:

    • SubGit 2.0.0 introduces new remote mirror mode. In this mode all synchronization related tasks are performed on the Git repository side, Subversion side remains untouched. Consequently, Subversion users are not aware of the mirror(s) presence, however their changes are reflected in the Git repository. Changes pushed by the Git users are instantly promoted to the Subversion repository. SubGit ‘Remote’ Book provides full details on the new mode operation and configuration.
  • One-shot import from Subversion to Git

    • To import existing project from Subversion to Git without configuring a mirror, one may now use new shortcut import command. This command has being designed to eliminate human interaction and allows all the options to be specified once on the command line. You may find more information on import command in SubGit ‘Remote’ Book.
  • Performance improvements

    • SubGit instruments repository with the hook scripts that are invoked on each push or commit (in case SubGit is installed in Subversion repository). In version 2.0, we have reimplemented these hooks as native binaries so that JVM startup overhead is no longer an issue. On platforms where native binaries are not available (OS X or some specific Linux versions) good old JVM-based hooks are used.
  • Flexible branches and tags layout

    • Version 2.0 allows to specify multiple branches locations for a single project. For instance, the following mapping will work now:

      trunk = trunk:refs/heads/master
      branches = branches/*:refs/heads/*
      branches = releases/*:refs/releases/*
      tags = tags/*:refs/tags/*
      shelves = shelves/*:refs/shelves/* Find more in the [branches mapping](../book.html#5) section of the SubGit Local Book.

Contact us

Please fill out all fields.

By clicking on this button you agree to provide us your personal data for the purpose of technical support for you. Please read our Privacy policy for more details.

Thank you for contacting us!
We will get back to you soon.

Check out our Support Forum! The answer to your question might already be there.

We are sorry, something went wrong. Please try again or contact us.