Repositories Storage Configuration Strategy
Redmine Git Hosting has 2 modes to store repositories in Gitolite :
-
hierarchical : repositories will be stored in Gitolite into a hierarchy that mirrors the project hierarchy.
-
flat : repositories will be stored in Gitolite directly under
repository/
, regardless of the number and identity of any parents that they may have.
Interaction with non-Redmine Gitolite users
This plugin respects Gitolite repositories that are managed outside of Redmine or managed by both Redmine and non-Redmine users :
-
Users other than redmine_* are left untouched and can be in projects by themselves or mixed in with projects managed by redmine.
-
When a Redmine-managed project is deleted (with the Delete Git Repository When Project Is Deleted option enabled), its corresponding Git repository will not be deleted/recycled if there are non-Redmine users in the gitolite.conf file.
Deployment and configuration
You can override plugin’s configuration :
- by changing values in database within Redmine interface
- by editing the
settings.yml
file in the plugin’s root directory (this file doesn’t exist by default)
Plugin’s default values are stored in lib/default_settings.yml
file. Both files are passed through ERB so you can add custom Ruby code inside. Note that you can override only the desired values.
If you change default values in settings.yml
file you will need to update the configuration in database as explained here.
A note about the PATH
variable
One major source of issues with this plugin is that Rails needs to be able to run both sudo
and git
commands. Specifically, these programs need to be in one of the directories specified by the PATH
variable, in your Rails environment. This requirement has been known to cause problems.
- With Passenger
When working as Nginx extension, Passenger creates a sandbox so environment variables aren’t sent to Passenger. To fix this you must add this to your Nginx configuration (server section) :
passenger_env_var PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
A note about HOME
variable
The HOME
variable must be properly set in the execution environment. It seems that it’s not the case for Nginx + Thin.
To address this problem one possible solution is to do the following :
Edit the /etc/init.d/thin
file and change the line
/usr/bin/ruby1.9.1 $DAEMON $ACTION --all /etc/thin1.9.1
to
export HOME=/home/redmine && /usr/bin/ruby1.9.1 $DAEMON $ACTION --all /etc/thin1.9.1
Thanks to user overmind88 for providing a solution for Nginx + Thin.