Difference between revisions of "Configuring the biowikifarm subversion repository"

From Biowikifarm Metawiki
Jump to: navigation, search
m (+Adding log edit feature)
m (+docu)
Line 1: Line 1:
 +
__TOC__
 +
== 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:
 
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:
  
Line 11: Line 14:
 
  </Location>
 
  </Location>
  
Create password file and users:
+
== Password file and users ==
 +
{{Anchor|addSubversionUsers}}
 
<source lang="bash">
 
<source lang="bash">
 
  sudo htpasswd -c /etc/apache2/dav_svn.passwd user ## only for first user
 
  sudo htpasswd -c /etc/apache2/dav_svn.passwd user ## only for first user
Line 32: Line 36:
 
  sudo /etc/init.d/apache2 reload
 
  sudo /etc/init.d/apache2 reload
 
</source>
 
</source>
 +
 +
== SVN-Repository ==
  
 
Creating SVN-Repository, access only to Webserver:
 
Creating SVN-Repository, access only to Webserver:
Line 57: Line 63:
 
  (www-data$) cd /var/www/v-artenquiz
 
  (www-data$) cd /var/www/v-artenquiz
 
  (www-data$) svn co https://biowikifarm.net/svn
 
  (www-data$) svn co https://biowikifarm.net/svn
  (<PASSWORD> angeben)
+
  (enter <PASSWORD>)
 
</source>
 
</source>
  
Line 73: Line 79:
  
 
By means of this commit-hook, whenever a commit to SVN occurs, www/v-artenquiz is automatically updated as well!
 
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 [[#addSubversionUsers|user account]] in dav)
 +
 +
An alternative is to use svn import in command line with
 +
<source lang="bash">
 +
  sudo svn import NonSvnExtensions file:///var/lib/svn/NonSvnExtensions -m 'import of mediawiki NonSvnExtensions'
 +
</source>
 +
  
 
== Adding log edit feature ==
 
== Adding log edit feature ==

Revision as of 12:46, 27 May 2011

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 webserver shows the most recent version:

 sudo htpasswd /etc/apache2/dav_svn.passwd www-data
 <PASSWORD>
 sudo -s
 # chown -R www-data.www-data /var/www/v-artenquiz
 # www-data needs a folder to store svn-configuration:
 sudo mkdir /var/www/.subversion
 sudo chown www-data.www-data /var/www/.subversion/
 su - www-data # change user to www-data
 (www-data$) cd /var/www/v-artenquiz
 (www-data$) svn co https://biowikifarm.net/svn
 (enter <PASSWORD>)

Continuing as normal user, create file /var/lib/svn/hooks/post-commit with:

 #!/bin/sh
 cd /var/www/v-artenquiz
 HOME=/var/www 
 /usr/bin/svn update

…and set this file as executable:

 sudo chmod +x /var/lib/svn/hooks/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).

  1. check out the repository
  2. 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)
  3. 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.