Upon installation completion, SubGit launches background process that periodically polls Subversion repository. Whenever new revisions are found, they are translated to Git commits. This way Git repository remains up-to-date most of the time. This background process is optional and could be killed. When background process is not running, new Subversion revisions will be translated to Git commits on Git user push as part of the pre-receive hook processing. Unless disabled in configuration file, user’s push will restart background translation process.
Options that affect SubGit background process could be set in GIT_REPOS/subgit/config configuration file:
[svn] ... fetchInterval = 60 # check for new revisions every 60 seconds ... [daemon] ... idleTimeout = infinity # backgroud process never exits |
Background translation process might be disabled by setting daemon.idleTimeout option value to 0. In this case translation process will exit immediately after push is completed:
[daemon] ... idleTimeout = 0 # backgroud process disabled |
To force translation of the outstanding Subversion revisions, user may use subgit fetch command:
$ subgit fetch [--async] GIT_REPOS_PATH |
Alternatively invoke a no-op push from a remote working tree:
$ git push origin +:refs/heads/bogus_branch |
Above command will attempt to delete non-existing remote branch and as a side effect will force SubGit to synchronize Git and Subversion repositories.
To stop background process gracefully use shutdown command:
$ subgit shutdown repository.git SubGit version 2.0.0 ('Patrick') build #7777 About to shut down background translation process. Shutdown request sent to background translation process (pid 4404). Background translation process has received shutdown request and will exit NOW. SHUTDOWN SUCCESSFUL |