linux(CentOS release 6.5)环境搭建svn

  正文以前,说几句关于svn和git的闲话。 html

  以前用的版本控制工具主要都是svn,随着时间的推移,git以其强大灵活的分支管理功能受到大众喜好。尤为是多人同时开发时同一项目,且不一样部分功能时,git的分支管理功能显得尤其强大。而且git代码库的分布式管理,使得各个客户端代码库对服务器代码库的依赖大大减弱,代码管理灵活而又强大。git

  上一个公司的项目类型就是那种,同一个项目多人开发不一样模块功能,而且上线时间各个不一样。版本控制工具一直在用git,对于公司项目的状况,仍是充分发挥了git的多分支管理功能,项目开发也算是有条不紊。后期空降到公司一个cto,cto以前是用的svn,没有用过git,而后要求咱们都统一改换svn做为版本控制工做。项目开发感受捉襟见肘。=_=!。centos

  固然今天写这个博客跟以上没有什么必然联系。小伙伴们本身买了个服务器,以前在上面搭建了个svn。后来系统崩了,重装了系统,svn也没了。有个小伙伴最近要作东西,让我再搭一下。上次搭过一次,感受不费什么事。然而操做起来也是各类google和百度,好多也记不住了。因此此次写个博客权做笔记了。固然只是svn最基本代码管理功能。缓存

 

  1.先看看服务器上是否是已经安装svn了。服务器

svnserve --version  //或者 svn --version

  若是已经安装了svn了,那么会显示svn的版本信息。tcp

  

  若是提示是错误命令,那就是服务器还未安装svn。须要你来安装svn了。固然若是已经安装了,你也能够卸载掉旧版本(yum remove subversion),来安装新版本的svn。 分布式

yum install subversion

 

  2.svn安装完成后,就能够建立版本库了。svn

svnadmin create /opt/svn/repository

  可能出现的问题,不存在相应的目录结构。opt是服务器根目录是存在的,而svn这个目录结构多是不存在的。工具

  

  这个解决方法,只需在opt目录下建立svn目录就能够了(mkdir svn)。 google

 

  3.svn代码库建立成功后,查看repository目录下。 已经conf, db, format, hooks, locks, README.txt等文件。进入conf目录,代码库的配置文件在该目录下。有如下几个文件authz, passwd, svnserve.conf。其中authz是权限控制,能够设置哪些用户能够访问哪些目录,passwd是设置用户和密码的,svnserve.conf是设置svn相关操做的。

  a. svnserve.conf文件

  [general]  
  #匿名访问的权限,可为none,read,write  
  anon-access = none  

  #受权用户的权限,可为none,read,write  
  auth-access = write  

  #密码数据文件的路径,如不以/开头,则为相对路径  
  password-db = passwd  

  #访问控制文件的路径,如不以/开头,则为相对路径  
  authz-db = authz  

  #认证命名空间,subversion会在认证提示里显示,而且做为凭证缓存的关键字,不一样的代码库须要不一样的realm  
   #咱们以前建立的仓库repository,此处为此仓库名
  realm = repository

  b.passwd文件

  [users]  
  #用来设置帐户及密码,此处咱们创建三个帐户
  admin = 123456
  xiaohua = 123465
  xiaopeng = 123456

  c.authz文件,该文件用来控制不一样用户对不一样目录的访问权限。

  #能够将passwd中创建的帐户,划分到不一样组中,组名由本身定义。此处咱们定义两个组admin(管理员)和developer(开发人员组)。
   [groups]  
  admin = admin
  developer = xiaohua,xiaopeng

  #定义不一样目录的访问权限,设置咱们以前建立的repository根目录权限。
  [repository:/]
  #设置admin组中成员,对本目录有读(r)和写(
w)权限   @admin = rw
  #设置developer组中的成员,对本目录只有读(r)权限   @developer
= r   #设置其余访问者,对本目录无任何权限   * =   #设置repository目录下,test目录(test后不要加/)权限。   [repository:/test]   @developer = rw   * =

  此处的@表示组名([groups]),固然去掉@符号,也能够直接帐号来限制权限。xiaohua = rw,表示只对xiaohua这个帐户具备读写权限。

 

  4.配置文件设置好之后,须要肯定下,防火墙对svn默认的端口3690是打开的。

vi /etc/sysconfig/iptables

  添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

  保存后重启防火墙

service iptables restart

 

  5.svn的启动与中止。

  启动svn服务

svnserve -d -r /opt/svn/repository

  -d:守护进程 -r:svn根目录。启动时能够设置启动的端口,svnserve -d -r /opt/svn/repository --listen-port 3691。若是不设置则默认为3690。

  若是要中止svn服务,能够经过kill进程id的方式来实现。

  ps aux|grep svn   #找到svnserve服务pid
  kill -9 pid  #结束进程

 

  6.客户端(好比咱们本地的计算机)安装svn工具(好比 TortoiseSVN)后,就能够在本地checkout出咱们在服务器上搭建的代码库了,地址:svn://服务器ip/repository。

 

  以上。欢迎指正交流。

  相关参考:http://www.centoscn.com/CentosServer/ftp/2015/0115/4504.html                    http://www.jianshu.com/p/0a5e59e4532f         http://www.cnblogs.com/terryglp/articles/2451398.html

相关文章
相关标签/搜索