一些公司还在用的版本控制Svn部署
2020-04-06 07:57
197 查看
1.Svn
1.Svn简介
SVN是C/S架构,数据存放分成服务器端和客户端。创建代码库一般指的是SVN服务器端的操作,这个库随便建在什么地方都可以;你要发布的线上代码,这是存放在SVN的客户端的。 SVN的服务器端和客户端存放文件的格式是不同的,所以不能直接访问SVN服务器端的存储路径,只能通过SVN客户端将服务器端的存储内容checkout或者export出来。
2.搭建过程
1、先建立一个SVN服务器(可以专门安装SVN服务器端安装包,建立用http/https或svn协议访问的SVN服务器;也可以简单用TortoiseSVN创建本地的用files:///方式访问的SVN服务器); 2、在服务器端建立一个空的版本库,将你原有的www-web-项目 文件夹 上传到SVN服务器新建的版本库中; 3、在你线上存放代码的地方新建一个文件夹,并将版本库中的内容checkout到这个新文件夹,设置这个文件夹是以后线上发布代码的文件夹; 4、在你开发用的工作电脑上checkout一个文件夹出来,平时在这个文件夹修改代码,修改完成后上传到SVN服务器,然后在线上代码对应的文件夹那里更新得到上传的新代码。 这样的话,你的整个工作就分成了3个存储位置:1、服务器端,2、开发端,3、线上发布端,这就井井有条、互不干扰了。
2.部署Svn
准备两台机器,一台做服务端,一台做客户端。
1.服务端搭建
[root@server ~]# yum -y install subversion #安装软件 [root@server ~]# mkdir -p /home/svn/test #创建版本库目录(自定义) [root@server ~]# svnadmin create /home/svn/test #创建新的repository(版本库) [root@server ~]# cd /home/svn/test/conf [root@server conf]# ls #创建版本库后,会自动生成三个配置文件 authz passwd svnserve.conf [root@server conf]# vim svnserve.conf #进入配置文件,将下面5行注释打开 anon-access = read auth-access = write password-db = passwd authz-db = authz realm = My First Repository =================================================================================== anon-access: 控制非鉴权用户访问版本库的权限。 auth-access: 控制鉴权用户访问版本库的权限。 password-db: 指定用户名口令文件名。 authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文 ===================================================================================
[root@server conf]# vim passwd #在users模块里面添加一个用户yjssjm,密码是123
[root@server conf]# vim authz [groups] harry_and_sally = harry,sally harry_sally_and_joe = harry,sally,&joe yjssjm = yjssjm #定义组yjssjm,且里面只有一个用户yjssjm,组名可以自定义,用户名可以加多个,以逗号隔开 [test:/] #定义目录,此目录是项目test的根目录 @yjssjm = rw #用户可读可写 * = rw #其它用户也可读可写 ====================================================================== [root@server conf]# #svnserve –d –r /home/svn #启动服务 [root@server conf]# lsof -i:3690 #默认端口号 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME svnserve 15464 root 3u IPv4 216724 0t0 TCP *:svn (LISTEN) [root@server conf]# svnlook tree /home/svn/test/ --full-paths --show-ids #查看版本库 --full-paths 显示路径 --show-ids 显示版本号
2.客户端测试
[root@client ~]# yum -y install subversion [root@client ~]# svn checkout svn://服务端ip/home/svn/test
如果报错:
原因:svn服务未启动或者是启动的时候未指定svn仓库路径,svn默认仓库路径为/var/svn,所以我们需要手动指定为/home/svn/
解决方案:
ps -aux|grep svn #查找出来svn的pid, kill -9 svn的pid进程号 #用kill杀掉进程 svnserver –d –r /home/svn/ #重启服务
提交代码文件:
服务器上没有的文件,在客户端需要先add预提交,再commit,如果服务器端已有的文件,直接commit
svn add /root/davesvn/test
svn ci /root/davesvn/test -m "创建新文件" //ci是commit的缩写, -m是添加注释
# 提交test.txt文件 [root@client ~]# cd /root/davesvn/test [root@client test]# vim test.txt #随意写入数据 [root@client test]# svn add test.txt A test.txt [root@client test]# svn commit test.txt -m "test-version1" Authentication realm: My First Repository Password for 'root': #输入虚拟机root密码 Authentication realm: My First Repository Username: svn #输入svn配置文件内创建的用户 Password for 'svn': #输入用户密码 ------ ATTENTION! Your password for authentication realm: \``` My First Repository \``` can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in ## '/root/.subversion/servers'. Store password unencrypted (yes/no)? yes #输入yes Adding test.txt Transmitting file data . Committed revision 1.
你们的评论和点赞是我写文章的最大动力,蟹蟹。
相关文章推荐
- 一些公司还在用的版本控制Svn部署
- 版本控制:SVN和GIT的一些使用感受
- linux服务器安装svn版本控制,自动部署代码到项目目录
- 版本控制:SVN和GIT的一些使用感受(续)
- 版本控制:SVN和GIT的一些使用感受
- svn版本控制方案:多分支并行开发,多环境自动部署
- (水文,内容比较初级,高手勿进)使用SVN版本控制之后常见的一些问题01
- 公司开发时候,使用svn进行版本控制,在提交代码的时候应该注意的问题,总结!!!!
- 3----svn版本控制部署+分发机
- 版本控制SVN在CentOS系统的部署
- 运维自动化之svn+puppet实现监控系统的版本控制与自动部署监控系统
- 使用SVN进行版本控制时遇到的一些问题
- svn代码部署版本控制
- MyEclilpse 使用 SVN 控制版本 使用 tomcat6.0 服务器部署web项目
- 简进祥-SVN版本控制方案:多分支并行开发,多环境自动部署
- 清除SVN版本控制
- Android studio如何使用SVN进行版本控制?
- git忽略一些文件或文件夹不加入版本控制
- 最课程阶段大作业之01:使用SVN实现版本控制
- CentOs6.8系统部署SVN版本管理