安装SVN服务端
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
svn优势
1.存储
SVN服务器既具有CVS所具有数据储存的优点,像是信息资源存储后会形成资源树结构,便于存储的同时,数据一般不会丢失,同时又拥有自己的特色。SVN是通过关系数据库及二进制的存储方式,同时解决了既往不能同时读写同一文件等问题,同时增添了自己特有的“零或一”原则。
2.速度
与人们初始的CVS相比,SVN在速度运行方面有很大提升。因为SVN服务器只支持少量的信息、资源传输,与其他系统相比,更支持的是离线模式,因此避免了网络拥挤现象的出现。
3.安全性
SVN是一种技术性更加安全的产品,实现了系统和控制两方面的结合。一方面可以将系统整体的安全功能有效地分布在分支系统中,进而保证分支系统能正常运行,从而使各分支系统能够互补,最终在系统整体性的安全性得以保障,通过均衡原则实现最终追求安全的目的。
安装Subversion
yum -y install subversion
创建SVN版本库
创建版本库目录
mkdir -p /data/svn/my_project
svnadmin create /data/svn/my_project/
配置SVN信息
版本库中的配置目录 conf 有三个文件:
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务综合配置文件
配置权限配置文件 authz
编辑文件authz
[root@localhost ~]# vim /data/svn/my_project/conf/authz
# groups下添加
[groups]
# 用户组所对应的用户
admin = admin,root,test
# 库目录权限
[/]
# 用户组权限
@admin = rw
# 非用户组权限
*=r
配置账号密码文件passwd
[root@localhost ~]# vim /data/svn/my_project/conf/passwd
# 末尾添加
admin = 123456
root = 123456
test = 123456
配置SVN服务的总和配置文件
[root@localhost ~]# vim /data/svn/my_project/conf/svnserve.conf
# 去掉注释
# 匿名用户没有权限
anon-access = none
# 授权用户可以写入
auth-access = write
# 密码文件路径
password-db = passwd
# 授权文件路径
authz-db = authz
# 版本库路径
realm = /data/svn/my_project
启动SVN服务
svnserve -d -r /data/svn/
checkout SVN项目
mkdir -p /data/workspace/my_project
svn co svn://127.0.0.1/my_project /data/workspace/my_project/ \
--username root --password 123456 --force --no-auth-cache
取出版本 0。
提交文件到 SVN 服务器
[root@localhost ~]# cd /data/workspace/my_project/
[root@localhost my_project]# echo bjyxszd >> test.txt
[root@localhost my_project]# svn add test.txt
A test.txt
[root@localhost my_project]# svn commit test.txt -m 'test'
认证领域: <svn://127.0.0.1:3690> /data/svn/my_project
“root”的密码:
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
<svn://127.0.0.1:3690> /data/svn/my_project
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
正在增加 test.txt
传输文件数据.
提交后的版本为 1。
本地的项目删除后,也能通过版本库恢复
[root@localhost my_project]# rm -rf test.txt
[root@localhost my_project]# pwd
/data/workspace/my_project
[root@localhost my_project]# svn update
正在升级 '.':
已还原“test.txt”
版本 1。
[root@localhost my_project]# ls
test.txt