We all know that Git is a very good VCS, with redmine, like Bugzilla, we have even better control and graphical view on our repository, and this is undoubtedly aid development. The following is how to make the whole VCS system happens.
What we need
1) Git (of course!)
2) Redmine
3) Apache Server
Procedure
1) Install all the necessary components respectively
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install redmine-mysql
sudo apt-get install libapache2-mod-passenger
sudo apt-get install redmine
sudo apt-get install git-core
2) Set up soft link from redmine source to the Apache source
sudo ln -s /usr/share/redmine/public /var/www/redmine
3) mod passenger needs www-data to execute, add the following to /etc/apache2/mods-available/passenger.conf
vi /etc/apache2/mods-available/passenger.conf
PassengerDefaultUser www-data
4) Add redmine's web directory to Apache2's sites-available/default
RailsBaseURI /redmine
PassengerAppRoot /usr/share/redmine
RailsEnv production
PassengerResolveSymlinksInDocumentRoot on
5) Setup plugin linkage
ln -s /var/cache/redmine/default/plugin_assets /usr/share/redmine/public/
6) Create new repository (server side), note that the directory should be with owner "www-data"
cd /var/www
mkdir test-repo.git
cd test-repo.git
git --bare init
git update-server-info
chown -R www-data.www-data .
7) Enable webDAV
a2enmod dav_fs
a2enmod dav
If high security is required, carry on, if not, restart apache and all services will be done
8) Create the following file
/etc/apache2/conf.d/git.conf
9) Configure the repository path for authentication
DAV on
AuthType Basic
AuthName "Git"
AuthUserFile /etc/apache2/passwd.git
Require valid-user
10) Create user which can access the repository
htpasswd -c /etc/apache2/passwd.git
11) Restart Apache service
/etc/init.d/apache2 restart
Done! You have made a git VCS with redmine geared!
Almost forgot, modifying the config file in .git directory is necessary for authentication when pushing
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://username:password@git.repository.url/repo.git
References:
- Linking git remote server to Apache
http://blog.bobbyallen.me/2012/07/23/installing-a-git-server-using-apache-webdav-on-ubuntu-server-12-04/
- Installing Apache + Git + Redmine
http://blog.chiichen.com/2014/05/raspberry-pi-redmine.html
- Git config fix on http/https authentication
http://stackoverflow.com/questions/5264949/cannot-push-git-to-remote-repository-with-http-https
- Others
https://randomthoughtsgr.wordpress.com/2011/10/17/redmine-sub-uri-and-apache-configuration/