SVN搭建及简单使用

什么是svn
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
1. 性能提高。SVN不管文件是文本还是二进制类型,在内部都是以二进制差异比较算法来表示文件的更新部分。这表示所有的文件在文件库中都是以差异的形式储存。而且在网络上传输的,都是较小的文件差异部分。这也使创建分支、打标签、合并等操作可以非常快地完成.
2. 对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。因此可以根据项目的需要,对目录结构随时进行修改,可以把现有的目录移动到新的地方。

3. 保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。


svn配置

  1. mount /dev/cdrom /media/cdrom   挂载光驱    
  2.     
  3. 1.安装svn服务器端    
  4.     
  5. yum install subversion      从镜像下载安装svn服务器端    
  6.     
  7. cd /usr/local/              //进入目录,准备创建svn目录    
  8.     
  9. mkdir svn                   //创建一个svn目录    
  10.     
  11. chmod -R 777 svn            //修改目录权限为777    
  12.     
  13. svnadmin create /usr/local/svn/linux //创建一个svn版本仓库sunny(sunny可以随便起名字)    
  14.     
  15. cd svn/linux/conf               //进入sunny版本仓库下的配置文件目录    
  16.     
  17. 下面要修改这个目录下的三个配置文件    
  18.     
  19. (1)vi svnserve.conf    //配置版本库信息和用户文件和用户密码文件的路径、版本库路径    
  20. 把    
  21. anon-access = none      //改成none   12    
  22. auth-access = write                  13    
  23. password-db = passwd                 18    
  24. realm = linux           //改成自己的版本库   30    
  25. 保存    
  26.     
  27. (2)vi authz     //文件,创建svn组和组用户的权限    
  28.     
  29. [group]    
  30. linux = pcy,trp //创建一个sunny的组,并指定两个用户gep和wce    
  31.     
  32. [/]             //制定根目录下的权限    
  33. @linux = rw     //sunny组用户权限为读写    
  34. * = r           //其他用户只有读权限    
  35. 保存退出    
  36.     
  37. (3) vi passwd   //创建或修改用户密码    
  38. [users]    
  39. pcy = 123456    //用户名为gep的用户的密码为123456    
  40. trp = 123456    //。。。    
  41. 保存退出    
  42.     
  43. 启动svn:    
  44. svnserve -d -r /usr/local/svn/     //这里采用多版本库的方式启动  如果是单版本库 可以svnserve -d -r /usr/local/svn/sunny    
  45. 添加一行    
  46.     
  47. 然后要设置自启动    
  48.     
  49. vi /etc/rc.d/rc.local    打开自启动文件添加    
  50.     
  51. /usr/bin/svnserve -d -r /usr/local/svn/    
  52.     
  53. 到此为止可以从服务端检出文件了.    
  54.     
  55. svn命令:    
  56.     
  57. netstat -tnl |grep :3690   查看svn是否启动    
  58.     
  59. ps aux |grep 'svn'  查找所有svn启动的进程    
  60.     
  61. kill -9 2505    杀死2505这个查找到的svn进程    
  62.     
  63. 做检出  就要先在根目录下建立一个文件夹  放置要检出的文件    
  64.     
  65. 检出命令:    
  66. svn checkout svn://linux的ip/版本库名称 /要检出的目录路径    
  67. 例子:svn checkout svn://192.168.1.107/svn(建立的目录) /aaa(要检出的文件目录)    
  68.     
  69. 如果是新建的文件夹  就要先把文件添加    
  70. svn add 新建的那文件    
  71.     
  72. 第二部就是要提交    
  73. svn commit -m "注释" xxx.php  //提交文件    
  74. [root@localhost aaa]# svn commit -m "aaaaaaaaaaaa" a.php    
  75. 新增           a.php    
  76. 传输文件数据.    
  77. 提交后的修订版为 1。    
  78.     
  79. 第三    
  80. 两个用户同时编辑后 第三个有要编辑    
  81. 那么就要svn up 取出最新版本的编辑文件    
  82.     
  83. 常用命令:    
  84.     
  85. svn up    //更新文件    
  86.     
  87. svn commit -m "注释" xxx.php  //提交文件    
  88.     
  89. svn add 文件名               //新建文件并添加到svn    
  90.     
  91. svn add *.php               //(添加当前目录下所有的php文件)    
  92.     
  93. svn delete test.php         //删除test.php    
  94.     
  95. svn log test.php            //查看test文件的log信息    
  96.     
  97. svn cleanup                 //清理当前目录    
  98.     
  99. ####################################设置svn自动更新,不需要在手动去做了#####################    
  100.     
  101. 自动更新    
  102.     
  103. 在vi /usr/local/svn/sunny/hooks/post-commit中加入    
  104.     
  105. #!/bin/sh    
  106.     
  107. #设置一些变量    
  108.     
  109. SVN=/usr/bin/svn    
  110.     
  111. WEB=/你要更新的目录    
  112.     
  113. export LANG=en_US.UTF-8    
  114.     
  115. $SVN update $WEB --username svn用户名 --password 密码    
  116.     
  117. 其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn    
  118.     
  119. WEB=右边改成你实际的web目录    
  120.     
  121. 赋予可执行权限    
  122.     
  123. chmod 777 /usr/local/svn/sunny/hooks/post-commit    
  124.     
  125. 安装完毕    
  126.     
  127. =========================================================================    
  128. 其他操作    
  129.     
  130. svn up更新    
  131.     
  132. svn switch --relocate svn://192.168.1.253  svn://172.19.10.250      //重新定位SVN版本库地址    
  133.     
  134. // SVN版本库起动方式,现在SVN下面有 sunny、test 两个版本库    
  135.     
  136. 1:单版本库起动    svnserve -d -r /usr/local/svn/sunny    
  137.     
  138. 2:多版本库起动    svnserve -d -r /usr/local/svn    
  139.     
  140. 区别在于起动svn时候的命令中的启动参数-r指定的目录。    
  141.     
  142. 限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件    
  143.     
  144. 以配置 sunny 版本库为例    
  145. vi authz    
  146. [groups]    
  147. teacher = sunny,sunny1    
  148. [sunny:/]             //指定版本库跟目录下的权限    
  149. @teacher = rw     //teacher组用户权限为读写    
  150. * = r           //其他用户只有读权限    
  151. 保存退出    
  152.     
  153. vi passwd 设置组中用户的账号和密码    
  154. [users]    
  155. sunny  = 123456    
  156. sunny1 = 123456   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值