Git, Subversion, Mercurial and Bazaar

Create local repositories

Provision repository storage and register it with a Redmine project from the familiar repository settings screen.

Create a managed repository

  1. Open Project → Settings → Repositories.
  2. Select the configured local SCM type.
  3. Choose an identifier and confirm the generated repository path.
  4. Select Create new local repository.

The default repository name follows the project identifier. Git repositories are normally bare repositories with a .git suffix; Subversion repositories are created with svnadmin create.

SCM Creator form for creating a local Git repository in Redmine
DesktopChoose Git and verify the managed filesystem path.
Local Git repository creation form in a narrow Redmine layout
ResponsiveThe provider form remains usable on narrow layouts.

Path and deletion safety

Managed paths

  • Exactly one direct child beneath the configured root
  • No traversal or nested unapproved paths
  • Validated before create, rename or delete

Controlled deletion

Administrators choose whether to remove only the Redmine registration or also the managed filesystem repository. An incomplete filesystem deletion prevents removal of the database record.

Serving is separate. SCM Creator creates repository storage but does not publish it over HTTP, SSH or Subversion DAV. Configure the external repository server independently.

Configure provider roots

Each enabled provider needs an absolute storage root and its command-line client. The Redmine application user must be able to create repositories beneath that root. Displayed repository URLs are configured independently from filesystem paths.

production:
  git:
    path: /var/lib/redmine/git
    git: /usr/bin/git
    options:
      bare: true

Use the sample config/scm.yml included with the plugin as the authoritative starting point for every provider. Configure only options supported by the selected SCM.

Automatic project creation

Set auto_create: true to offer repository creation while a project is created. Use auto_create: force only when every project with the Repository module must select a configured SCM. Automatic creation still applies permissions, provider limits, writable-root checks, and lifecycle validation.

Project identifier changes

A repository created and managed by SCM Creator can be renamed after its project identifier changes only while it remains a validated direct child of the configured provider root. Existing unmanaged or external repositories are not moved automatically.