Caching for Working Directories

SCM-Manager offers commands to modify repositories on the server side. For example this is used by the Editor Plugin and the Review Plugin. Without further configuration, this is done by cloning/checking out the repository temporarily, performing the change, creating a commit and pushing the changes back to the central repository. The larger the repositories, the longer this may take.

To speed up such changes a lot, SCM-Manager offers a strategy where the local clones will be cached and reused for subsequent requests. This strategy caches up to a configurable amount of clones (but at most one per repository). To enable this strategy you can change the config.yml or set the corresponding environment variable. The maximum capacity of the cache can also be set via config.yml or corresponding environment variable (the default value is 5).

config.yml

webapp:
  # ...
  workingCopyPoolStrategy: sonia.scm.repository.work.SimpleCachingWorkingCopyPool
  workingCopyPoolSize: 5
  # ...
export SCM_WEBAPP_WORKINGCOPYPOOLSTRATEGY=sonia.scm.repository.work.SimpleCachingWorkingCopyPool
export SCM_WEBAPP_WORKINGCOPYPOOLSIZE=5