因为工作需要,自己在网上找了一下资料,了解了如何配置svn服务,并且已经成功配置,现在纪录下来。
SVN代码管理是我们日常工作需要用到的,所以在服务器上学会配置SVN服务很重要。
(1)安装SVN
yum install subversion
用yum命令安装svn。很简单。
(2)创建SVN仓库。
mkdir -p /data/svn/project_1 svnadmin create /data/svn/project_1
这样,就创建了一个svn仓库了。
同时,会在project_1目录下生成conf,db,format等文件和文件夹
(3)进入conf目录配置文件
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
vi authz #编辑authz文件 [groups] managers=manager1,manager2 #定义群组 managers 包含 manager1 和 manager2 两个用户 [/] @managers=rw #定义群组 managers 有读写权限 manager3=r #定义 manager3 有读权限 *= #以上没有定义的用户都没有任何权限
vi passwd #编辑passwd文件 [users] manager1=123456 #每一行都要是“用户名=密码”的格式 manager2=123123 manager3=888888
vi svnserve.conf #编辑svnserve.conf文件 [general] anon-access=read #匿名可读 建议设置为none,不然别人可以获取你的代码 auth-access=write #验证用户可读写 password-db=passwd #指向验证用户名密码的数据文件 passwd ,请看下文配置 auth-db=authz #指向验证用户的权限配置文件 authz ,请看下文配置 realm = /data/svn/project_1 # 认证空间名,版本库所在目录 注意:每一行前方不能有空格,否则会出现 Option expected 错误!
(4)启动SVN服务
svnserve -d -r /data/svn/project_1
这样,svn服务就启动了。如果有多个项目,比如还有一个project_2的项目,那么启动最好是这样
svnserve -d -r /data/svn
少了(project_1);这样的话两个项目都一起启动。
(5)客户端checkout服务器上的svn代码
svn checkout svn://服务器的ip地址/
如果是多个项目,那么checkout不同项目代码:
svn checkout svn://服务器的ip地址/project_1 svn checkout svn://服务器的ip地址/project_2
(6)服务器上取服务器上的SVN代码。
在WEB开发的时候,我们需要用SVN提交代码到服务器上,同时,希望客户也可以访问到代码,可是,SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。
说白了,就是在svn服务器上是看不到你上传的文件目录内容的。
所以如果想要在服务器上找到你上传的代码,需要在服务器上也checkout一份代码,这样你才能获取你上传的代码。
//在服务器上checkout代码。 svn checkout svn://服务器的ip地址/
然后写一个update的脚本,当代码提交到服务器后,执行./update就将上传的代码同步到服务器上。
vi update #!/bin/sh svn up /your server svn checkout code path/ --username "manager1" --password "123456"
最后给脚本增加可执行权限
chmod +x update