Configuring the biowikifarm subversion repository
This topic is about creating and configuring the repository on the server itself. For help with using or managing subversion, see Help: Subversion.
Contents
Configuration
Configuring a subversion repository, with svn already installed through apt-get, on Debian 5. The procedure was contributed by an anonymous helper. First: in /etc/apache2/mods-enabled/dav_svn.conf enable several lines:
<Location /svn> DAV svn SVNPath /var/lib/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user AuthzSVNAccessFile /etc/apache2/dav_svn.authz </Location>
Password file and users
sudo htpasswd -c /etc/apache2/dav_svn.passwd user ## only for first user
sudo htpasswd /etc/apache2/dav_svn.passwd user1
sudo htpasswd /etc/apache2/dav_svn.passwd user2 ## etc.
Create access control file and reload:
sudo nano /etc/apache2/dav_svn.authz
# Read/write permission for all SVN users: [/] * = rw
sudo /etc/init.d/apache2 reload
SVN-Repository
Creating SVN-Repository, access only to Webserver:
sudo mkdir /var/lib/svn
sudo svnadmin create /var/lib/svn/
sudo chown -R www-data.www-data /var/lib/svn/
Now one can check versions directly inside the browser using https://biowikifarm.net/svn/ or check locally out using a svn client:
svn co https://biowikifarm.net/svn/
To increase comfort we can ensure that committing to the webserver the most recent version is updated also in server’s reositories (i.e. with every commit, the webserver-local checkout is updated by a post-commit later on):
sudo htpasswd /etc/apache2/dav_svn.passwd www-data # ste password for www-data
<PASSWORD>
sudo -s # -s (shell)
# chown -R www-data.www-data /var/www/v-artenquiz
# www-data needs a folder to store svn-configuration (esp. a plaintext password needs to be set and then stored):
sudo mkdir /var/www/.subversion
sudo chown www-data.www-data /var/www/.subversion/
sudo su - www-data # change user to www-data
(www-data$) cd /var/www/v-artenquiz
(www-data$) svn checkout https://biowikifarm.net/svn
(enter <PASSWORD>)
Continuing as normal user, create file /var/lib/svn/hooks/post-commit with:
#!/bin/sh
HOME=/var/www
cd /var/www/v-artenquiz; /usr/bin/svn update
cd /usr/share/mediawiki/ext-LOCAL-svn; /usr/bin/svn update
cd /usr/share/mediawikistaging/ext-LOCAL-svn; /usr/bin/svn update
… and set this file as executable:
sudo chmod +x /var/lib/svn/hooks/post-commit
To later edit:
cd /var/lib/svn/hooks/; sudo nano post-commit
By means of this commit-hook, whenever a commit to SVN occurs, www/v-artenquiz is automatically updated as well!
Adding new directories
Adding new directories to the repository, the easiest way is to use a GUI like TortoiseSVN (Windows) or kdesvn (Linux KDE).
- check out the repository
- add or copy your folders you wish to add to the repository and add them to subversion control first (now subversion add them to version control)
- commit those new files or folders (needs a user account in dav)
An alternative is to use svn import in command line with
sudo svn import NonSvnExtensions file:///var/lib/svn/NonSvnExtensions -m 'import of mediawiki NonSvnExtensions'
Adding log edit feature
cd /var/lib/svn/hooks/
# use templates provided by subversion
sudo cp pre-revprop-change.tmpl pre-revprop-change
# make it executable
sudo chmod +x pre-revprop-change
Now you are able to edit/or set log entries from a specific subversion revision number -r
by:
1 cd /path/to/versioned/directory/
2 # edit log entry with editor
3 sudo svn propedit -r123 --revprop svn:log
4 # set log entry
5 sudo svn propset -r123 --revprop svn:log "new log message"
See also http://subversion.apache.org/faq.html#change-log-msg.