SVBVERSION & SVN
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
本案例要求先快速搭建好一台Subversion服务器,并测试该版本控制软件
步骤一:安装Subversion服务器
1) YUM安装subversion软件
01.[root@web1~]#yum-yinstall subversion
02. [root@web1~] # rpm - q subversion
2)创建版本库
01. [root@web1~] # mkdir /var/svn/
02.[root@web1~]#svnadmincreate /var/svn/project
03. [root@web1~] # ls /var/svn/project/
04.conf/db/formathooks/locks/ README.txt
3)本地导入初始化数据
01. [root@web1~]#cd/usr/lib/sy stemd/sy stem/
02.[root@web1~]#svnimport . file:///var/svn/project/ - m "Init Data"
4)修改配置文件,创建账户与密码 所有配置文件,要求顶头写,开头不要有空格。
01. [ root@web1~] # v im /var/svn/project/conf/svnserve.conf 02. [ general] 03. ### These options control access to the repository for unauthenticated 04. ### and authenticated users. Valid values are "write", "read", 05. ### and "none". The sample settings below are the defaults. 06. anon- access = none07. //19行,匿名无任何权限 08. auth- access = write 09. //20行,有效账户可写 10. password- db = passwd 11. //27行,密码文件 12. authz- db = authz 13. //34行,ACL访问控制列表文件 14. 15. [ root@web1~] # v im /var/svn/project/conf/passwd 16. … … 17. [ users] 18. harry = 123456 19. //用户名和密码 20. tom = 123456 21. //用户名和密码 22.23. [root@web1~] # cat /var/svn/project/conf/authz 24. [/] //定义ACL访问控制 25. harry = rw //用户对项目根路径可读可写 26. tom = rw
5)启动服务
01. [ root@web1~] # svnserve - d - r /var/svn/project
02. [ root@web1~] # netstat - nutlp | grep svnserve
03. tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 4043/svnserve
步骤二:客户端测试(192.168.2.200)
1) 将服务器上的代码下载到本地
01. [ root@web2 ~] # cd /tmp 02. [ root@web2 ~] # svn - - username harry - - password 123456 \ 03. co svn://192.168.2.100/ code 04. //建立本地副本,从服务器192.168.2.100上co下载代码到本地code目录 05. //用户名harry ,密码123456 06. 07. Store password unencry pted ( y es/no) ? y es //提示是否保存密码 08. 09. [ root@web2 ~] # cd /tmp/code 10. [ root@web2 code] # ls 11. [ root@web2 code] # v im user.slice //挑选任意文件修改其内容 12. [ root@web2 code] # svn ci - m "modif y user" //将本地修改的数据同步到服务器 13. 14. [ root@web2 code] # svn update //将服务器上新的数据同步到本地 15. [ root@web2 code] # svn info svn://192.168.2.100 //查看版本仓库基本信息 16. [ root@web2 code] # svn log svn://192.168.2.100 //查看版本仓库的日志 17. 18. [ root@web2 code] # echo "test" > test.sh //本地新建一个文件 19. [ root@web2 code] # svn ci - m "new file" //提交失败,该文件不被svn管理 20. [ root@web2 code] # svn add test.sh //将文件或目录加入版本控制 21. [ root@web2 code] # svn ci - m "new file" //再次提交,成功 22. 23. [ root@web2 code] # svn mkdir subdir //创建子目录 24. [ root@web2 code] # svn rm timers.target //使用svn删除文件 25. [ root@web2 code] # svn ci - m "xxx" //提交一次代码 26. 27. [ root@web2 code] # v im umount.target //任意修改本地的一个文件 28. [ root@web2 code] # svn diff //查看所有文件的差异 29. [ root@web2 code] # svn diff umount.target //仅查看某一个文件的差异 30. [ root@web2 code] # svn cat svn://192.168.2.100/reboot.target //查看服务器文件的内容 31. 32. [ root@web2 code] # sed - i 'd' tmp.mount 33. //删除文件所有内容,但未提交 34. [ root@web2 code] # svn revert tmp.mount 35. //还原tmp.mount文件 36. 37. [ root@web2 code] # rm - rf *.target 38. //任意删除若干文件 39. [ root@web2 code] # svn update 40. //还原 41. 42. [ root@web2 code] # - i '1a #test###' tuned.serv ice 43. //修改本地副本中的代码文件 44. [ root@web2 code] # svn ci - sed m "xxx" 45. //提交代码 46. [ root@web2 code] # svn merge - r7:2 tuned.serv ice 47. //将文件从版本7还原到版本2
为方便五湖四海的Linux爱好者共同
学(吹)习(牛)讨(打)论(趣)
热烈欢迎大家加入专属QQ群
群内定时上传资料还有老师全天答疑 入群即可免费获得 1、必备工具源码包 2、内部精选电子书 3、运维资料大礼包欲知更多福利,欢迎你的加入
点击 获取最新资料