Subversion(SVN)是一个自由,开源的版本控制系统,采用了分支管理系统。开发它的目的是为了替换CVS。
官网:https://subversion.apache.org/
Ubuntu安装Subversion Server
1、安装需要的软件包
$ sudo apt-get update
$ sudo apt-get install apache2 subversion subversion-tools libapache2-svn php libsvn-dev zip wget libapache2-mod-php libapache2-mod-svn
2、配置Apache
开启dav和dav_svn模块:
$ sudo a2enmod dav_svn
创建svn仓库目录:
$ sudo mkdir /var/svn
编辑dav_svn.conf文件:
$ sudo vim /etc/apache2/mods-available/dav_svn.conf
添加如下内容:
<Location /svn>
DAV svn
SVNParentPath /var/svn
</Location>
重启Apache:
$ sudo service apache2 restart
3、创建第一个仓库
$ cd /var/svn
$ sudo svnadmin create firstrepo
$ mkdir ~/mainrepo
$ cd ~/mainrepo
$ mkdir trunk tags branches
把创建的目录结构导入到firstrepo:
$ sudo svn import ~/mainrepo file:///var/svn/firstrepo -m 'Adding Initial Directories'
4、为firstrepo仓库设置用户
创建密码认证文件:
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd admin
New password:
Re-type new password:
Adding password for user admin
$ sudo vim /etc/apache2/mods-available/dav_svn.conf
在文件中添加:
<Location /svn/firstrepo >
AuthType Basic
AuthName "Authorized Access Only"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user admin
</Location>
重启Apache服务:
$ sudo service apache2 restart
使用浏览器访问测试,需输入认证密码:
checkout我们创建的第一个项目:
$ svn co http://127.0.0.1/svn/firstrepo ~/firstrepo
Authentication realm: <http://127.0.0.1:80> Authorized Access Only
Password for 'snail': ********
Authentication realm: <http://127.0.0.1:80> Authorized Access Only
Username: admin
Password for 'admin': ********
A /home/snail/firstrepo/branches
A /home/snail/firstrepo/tags
A /home/snail/firstrepo/trunk
Checked out revision 1.
安装websvn
WebSVN是一个基于Web的Subversion Repository浏览器。可以查看文件或文件夹的日志.查看文件的变化列表,添加或删除任意版本号。
$ cd /var/www/html/
$ sudo wget http://websvn.tigris.org/files/documents/1380/49057/websvn-2.3.3.zip
$ sudo unzip websvn-2.3.3.zip
$ sudo rm websvn-2.3.3.zip
$ sudo mv websvn-* websvn
$ sudo chown -R www-data:www-data /var/www/html/websvn/
使用浏览器访问:http://your_server_or_IP/websvn
创建config.php配置文件。
CentOS 7 搭建 SVN服务器
SVN全称SubVersion,是Apache开发的一个版本控制系统。本帖记录在CentOS 7上安装配置SVN的步骤。
1、安装svn和Web Server
我使用Apache做为Web Server,其它像Nginx、lighttpd也可以。
yum install httpd subversion mod_dav_svn
2、配置Apache
vim /etc/httpd/conf.modules.d/10-subversion.conf
在文件中添加:
Alias /svn /var/www/svn
<Location /svn>
DAV svn
SVNParentPath /var/www/svn/
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn-auth-accounts
Require valid-user
</Location>
上面的配置只允许认证用户使用SVN。
3、创建SVN用户
htpasswd -cm /etc/svn-auth-accounts mysvn
-c选项创建 /etc/svn-auth-accounts文件,创建第二个用户时去掉-c选项。
htpasswd -m /etc/svn-auth-accounts svn_test
4、创建配置SVN仓库
mkdir /var/www/svn
cd /var/www/svn/
svnadmin create repo
chown apache.apache repo/
如果你开启了Selinux,要么关闭SELinux,要么添加如下SELinux规则:
chcon -R -t httpd_sys_content_t /var/www/svn/repo/
chcon -R -t httpd_sys_rw_content_t /var/www/svn/repo/
5、启动httpd
systemctl restart httpd.service
systemctl enable httpd.service
6、禁止匿名访问SVN仓库
vim /var/www/svn/repo/conf/svnserve.conf
添加如下行:
## 禁止匿名访问
anon-access = none
## 开启访问控制
authz-db = authz
7、把项目导入到SVN仓库中
在服务器上创建一个简单的项目:
cd ~
mkdir my_first_project
cd my_first_project
touch Makefile
touch main.c
把项目导入到仓库:
svn import -m "First Project" ~/my_first_project file:///var/www/svn/repo/my_first_project
8、使用浏览器访问SVN服务器
使用浏览器访问:http://your_svn_server_ip/svn/repo:
为了提高通信安全可以使用https加密。
9、使用svn客户端测试
Windows可使用TortoiseSVN;我使用Mac OS X系统,xcode自带svn。
Checkout代码:
svn co http://192.168.0.108/svn/repo/my_first_project my_first_project
输入用户名密码:
提交:
touch test.c
svn add test.c
svn commit -m "test"
提交时遇到的一个错误:
svn: E000013: Commit failed (details follow):
svn: E000013: could not begin a transaction
修复方法:登录到服务器,确保Apache有读写目录的权限,并且关闭SELinux:
chown -R apache:apache /var/www/svn/repo
chmod -R 777 /var/www/svn/repo
到此,SVN服务器搭建完成。要获得更多信息,访问:https://subversion.apache.org/