SVN-集中式版本控制工具

  • 一般集中式管理版本控制系统有非常明确的权限管理机制,可以实现分层管理,从而很好的解决开发人员过多的问题
  • 集中式SVN服务器更能保证数据安全性,而分布式管理,代码就很容易泄露
  • 代码一致性高

 

工作过程

  • 开发者从SVN服务器下载项目组最新代码
  • 进入自己的分支,进行修改,每隔一个小时向服务器提交一次
  • 把自己的分支合并到服务器主分支上,解决冲突,提交commit

 

访问方式

  • apacheDAV方式,利用Apache下的mod_dav下的mod_dav_svn,通过http访问
  • svnserve,直接通过svn访问
  • local,本地访问

SVN档案库数据格式

  • BDB(一种事物安全型表类型,在服务器中断时,可能会锁住数据),1.2版本以前的缺省版本库格式
  • FSFS(一种不需要数据库的储存系统,是二进制文件) ,1.2版本以后的缺省版本库格式

所以数据不能直接看文件实体的,类似一些分布式文件系统MFS

 

服务端安装及配置

 

  • 检查环境 cat /etc/red-hat-relase 看系统版本号

          uname -rm 看内核版本号和位数

  • SVN对性能需求不大,所以yum安装

     rpm -qa subversion 检查是否已安装

     yum下载的软件包放在/var/cache/yum下

     如果想保留下载的rpm包,可以改/etc/yum.conf下的keepcache=0为keepcache=1

    sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf

      可以留给别的机器用

 

启动

  • 建立SVN版本库数据储存根目录 mkdir -p /application/svndata
  • 创建用户、密码权限目录 mkdir -p /application/svnpasswd
  • svnserve -d -r /application/svndata 然后grep一下看启成功没
  • netstat -lntup|grep 3690 查看端口  或者 lsof -i :3690

 

建立项目版本库

  • svnadmin create /application/svndata/qianbao 然后cd到目录下看看生成了哪些文件
  • 可以接-fs-type fsfs/bdb 设置数据格式

 

配置

  • cd /application/svndata/qianbao/conf 分别为主配置文件,用户和密码文件,权限文件
  • vi svnserve.conf   :set nu
  • 12行 anon-access=read 改为anon-access=none 去掉注释
  • 13行auth-access=write 打开开关
  • 20行password-db = passwd 打开开关,改为password-db = /application/svnpasswd/passwd 方便统一管理,可以把所有项目版本库的密码统一管理
  • 27行authz-db = authz ,打开开关,改为authz-db =  /application/svnpasswd/authz
  • 改完之后diff 源文件 新文件  看看变化
  • 然后把conf下的passwd和authz作为模板cp到/application/svnpasswd下
  • chmod 700 passwd authz

 

配置文件passwd和authz

  • 编辑passwd文件,按照格式添加user和passwd,也可以用脚本批量加
  • 编辑authz文件
    [group]
    master = yinxng,lixue
    #版本库目录格式:
    [<版本库>:/项目/目录]
    <用户名> = <权限>  
    @<用户组> = <权限>
  • 注意:authz文件里的用户必须已经在passwd文件里定义,组的权限写在用户权限后面

更改svnserve.conf后 需要重启服务 更改passwd和authz不需要重启(pkill svnserve,然后启动)

 

 

客户端软件 TortoiseSVN

  • 在本地创建一个项目文件夹,右键check out,第一次是check out,后面都是update(从服务器update下来)
  • 访问方式:svn://IP/项目名  输入用户名密码(如果是Apache搭建的svn,前面接http://)
  • 修改完后,项目文件夹右键,commit
  • 如果要查看服务端有没有更新,右键,repo_browser 
  • 文件夹图标是绿色对勾,表示已与服务器同步;蓝色问号,表示
  • 为避免文件版本冲突,修改代码之前一定要进行更新操作,红色感叹号表示没有上传提交
  • 提交时,提交进度对话框中,蓝色文字代表提交一个修改;紫色文字代表一个新增项;深红代表提交一个删除或是替换;黑色代表其他所有项。
  • 看代码修改历史,项目文件夹右键TortoiseSVN,show log,可以看到历史版本信息
  • 更换SVN服务端IP地址,项目文件夹右键TortoiseSVN,relocate

 删除客户端认证

  • 删除个别版本库的认证:cmd打开%APPDATA%/Subversion/auth
  • 删除所有版本库保存的认证:在文件夹上右键TortoiseSVN,setting,saved data,auth data

 

linux下SVN客户端管理

  • svn co(commit out) svn://ip/qianbao/ /localsvndata/ --username= --password=   获取、更新版本(写自动化脚本会用到)
posted on 2018-04-07 18:36  mustafayin  阅读(169)  评论(0编辑  收藏  举报