SVN Commands
Install subversion
sudo yum install subversion
Install apache
sudo yum install httpd
Install apache SVN module
sudo yum install mod_dav_svn
Install openssl module
sudo yum install openssl
Install apache SSL module
sudo yum install mod_ssl
Create Repo
sudo svnadmin create /home/repo/svn-repos/projectA
Pass Control To Apache
sudo chown -R apache.apache /home/repo/svn-repos/projectA
Change ServerName to 1xx.1xx.2xx.3x:80
sudo vi /etc/httpd/conf/httpd.conf
ServerName 1xx.1xx.2xx.3x:80
Can Skip This, If Not Allow Http Protocol Access
sudo vi /etc/httpd/conf.d/subversion.conf
Restart Httpd Service
sudo /etc/init.d/httpd restart
Can Skip This, If Not Allow Https Protocol Access
sudo vi /etc/httpd/conf.d/ssl.conf
Create Valid User To Svn, 'c' Used For First Time Creation The File
sudo htpasswd -cm /etc/svn-auth-conf username
Delegate Access Right
sudo vi /etc/svn-acl-conf
[groups]
svngrp = john, bert, you
[/] #all repos
@svngrp = rw
Restart Http Service
sudo /etc/init.d/httpd restart
Untar A Source Tree As Base Software
tar zxf projectA.tgz -C /home/shared/projectA
Import Source Tree To Repo
sudo svn import --no-ignore /home/shared/projectA file:////home/repo/svn-repos/trunk/projectA -m "Initial Import"
Create Branch/Tag Folder
svn mkdir http://1xx.1xx.2xx.3x/svn-repos/projectA/branches
Creating Branch/Tag
svn copy http://1xx.1xx.2xx.3x/svn-repos/projectA/trunk http://1xx.1xx.2xx.3x/svn-repos/ph1-F/branches/
Uncommit/Revert Svn Repo Changes
svn merge -r 67:65 source_dir/source_file
Revert Local Svn Working Directory Changes, Replaces By Svn Repo
svn revert source_dir/source_file
Create a repo
svnadmin create /home/repos/svn
or
svnadmin create --fs-type fsfs /home/repos/svn
(Berkeley DB back-end by default, unless --fs-type)
(Berkeley DB repository cannot work on filesystem such as NFS, AFS, or Windows SMB)
Add svn group
# groupadd subversion
# addgroup john subversion
# addgroup bert subversion
# addgroup you subversion
...
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*
/home/repos/svn/conf/passwd
[users]
john_doe = john_doe_passwd
jane_doe = jane_doe_passwd
/home/repos/svn/conf/svnserve.conf
[general]
john_doe = write
jane_doe = write
passwordd-db = passwd
Run subversion server
svnserve -d
Import a project
mkdir tmpdir
cd tmpdir
mkdir projectA
cd projectA
mkdir trunk branches tags
mkdir projectB
cd projectB
mkdir trunk branches tags
…
$ svn import . file:///path/to/repos -m 'Initial repository layout'
Adding projectA
Adding projectA/trunk
Adding projectA/branches
Adding projectA/tags
Adding projectB
Adding projectB/trunk
Adding projectB/branches
Adding projectB/tags
mkdir -p /tmp/svn/myproject
cd /tmp/svn/myproject
mkdir branches tags trunk vendor
cd myproject
cp -Rp * /tmp/svn/myproject/trunk
cd /tmp/svn
svn import . svn://servername_or_IPADDRESS/home/repos/svn -m "Initial import of myproject"
Verify the previous import of a project
svn list --verbose file:///path/to/repos
In-place import of a project
svn mkdir file:///svn/sites/foo -m "Foo repo directory creation"
cd /www/test
svn co file:///svn/sites/foo .
svn add *
svn ci -m "Initial import"
Checkout a project
svn checkout svn://servername_or_IPADDRESS/home/repos/svn/myproject/trunk
Commit changes
svn commit -m "Bug fix for wrong keycode"