Wednesday, November 25, 2015

Install svn on CEntOS 6

9:47 PM Posted by Dilli Raj Maharjan No comments
svn is a software versioning and revision control system distributed as free software under the Apache License. Software developers useSubversion to maintain current and historical versions of files such as source code, web pages, and documentation.

go to url http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/<arch> in my case I am using x86_64 architecture so using following URL to download required packages.
http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/x86_64/


Download following packages:



  1. mod_dav_svn-1.8.14-1.x86_64.rpm
  2. serf-1.3.7-1.x86_64.rpm
  3. subversion-1.8.14-1.x86_64.rpm


Optionally following packages can be downloaded:


  1. serf-debuginfo-1.3.7-1.x86_64.rpm
  2. serf-devel-1.3.7-1.x86_64.rpm
  3. subversion-devel-1.8.14-1.x86_64.rpm
  4. subversion-gnome-1.8.14-1.x86_64.rpm
  5. subversion-javahl-1.8.14-1.x86_64.rpm
  6. subversion-perl-1.8.14-1.x86_64.rpm
  7. subversion-python-1.8.14-1.x86_64.rpm
  8. subversion-ruby-1.8.14-1.x86_64.rpm
  9. subversion-tools-1.8.14-1.x86_64.rpm

Install mod_dav_svn, serf and subversion



rpm -ivh mod_dav_svn-1.8.14-1.x86_64.rpm serf-1.3.7-1.x86_64.rpm subversion-1.8.14-1.x86_64.rpm 









Modify subversion.conf file on conf.d of httpd.

vi /etc/httpd/conf.d/subversion.conf

Modify following settings 

SVNPath /opt/repo/ to SVNParentPath /opt/repo/
AuthName "SVN Repo" to AuthName "Authorization Realm"
AuthUserFile /opt/WANdisco/apache22/conf/svn.passwd AuthUserFile /etc/httpd/conf/.htpasswd

Add following settings

AuthzSVNAccessFile /etc/svnusers















Create repo

mkdir -p /opt/repo/
cd /opt/repo/
svnadmin create rapti_rp
svnadmin create bheri_rp
svnadmin create karnali_rp
chown -R apache:apache /opt/repo

















Create user and group logins

htpasswd -c -m /etc/httpd/conf/.htpasswd admin_rapti
htpasswd -m /etc/httpd/conf/.htpasswd admin_bheri
htpasswd -m /etc/httpd/conf/.htpasswd admin_karnali
htpasswd -m /etc/httpd/conf/.htpasswd user_rapti
htpasswd -m /etc/httpd/conf/.htpasswd user_bheri
htpasswd -m /etc/httpd/conf/.htpasswd user_karnali
































Create groups

cat > /etc/svnusers
[groups]
rapti_admin = admin_rapti
bheri_admin = admin_bheri
karnali_admin = admin_karnali
rapti_user = user_rapti
bheri_user = user_bheri
karnali_user =  user_karnali

[rapti_rp:/]
@rapti_admin = rw
@rapti_user = r

[bheri_rp:/]
@bheri_admin = rw
@bheri_user = r

[karnali_rp:/]
@karnali_admin = rw
@karnali_user = r




















Restart httpd service

/etc/init.d/httpd start








We can browse SVN with the url below:

http://<IPADDRESS>/svn/<repo_name>
http://192.168.1.251/svn/rapti_rp












Now we can create trunk, tags and branches with command below

svn mkdir file:///opt/repo/bheri_rp/tags -m "adding tag directory"
svn mkdir file:///opt/repo/bheri_rp/branches -m "adding branch directory"
svn mkdir file:///opt/repo/bheri_rp/trunk -m "adding trunk directory"














You can find the directories while accessing the svn url

http://192.168.1.251/svn/bheri_rp/

















Importing existing project into repo.

svn import /home/dilli/proj_bheri http://192.168.1.251/svn/bheri_rp/ -m "Initial import"


Checkout svn to current directory

svn co http://192.168.1.251/svn/bheri_rp/ .

Create hook file so that whenever commit occurs some svn command get executed.

cat > post-commit
#!/bin/sh

cd /var/www/web/bheri && /usr/bin/svn update --username username --password password --no-auth-cache >> /tmp/svn.out


Change ownership and mode of the hook file.

chmod 755 post-commit
chown apache:apache post-commit










0 comments:

Post a Comment