.svn文件夹_linux搭建SVN服务器 实现项目本地提交服务器端自动同步

简介

这个需求是我们公司自己的需求,我想也是大多使用svn公司的需求,使用git的就暂且绕过,有人肯定说咋还是用svn,现在都是git了,这个我不反驳,2个我们都在用,但是选择适合的才是最重要的,下面让小编我来为大家详细讲解如何linux搭建SVN服务器,并且使用本地提交代码,服务器端自动同步,省去部署的烦恼,比如现在的vue工程项目,本地打包后,svn提交直接就部署到服务器端了,这样是不是省去了不必要的工作量呢,提升我们的工作效率,方法是我们自己总结的,已经使用很长时间了,大家按照我们的步骤,绝对可以搭建起来,废话不多说,一起来看步骤把:

svn服务器的搭建

ssh登录linux服务器

ssh root@你的服务器ip(ps:接着会让你输入密码,密码不显示,直接输完 enter 就行了)

1.安装svn服务器端

yum install subversion

2.进入目录,准备创建svn目录

cd /usr/local/ 

3.创建一个svn目录

mkdir svn

4.修改目录权限为777

chmod -R 777 svn

5.创建一个svn版本仓库first(first可以随便起名字)

ls create /usr/local/svn/first 

6.进入first版本仓库下的配置文件目录

cd first/conf

7.编辑svnserve.conf配置文件

vim svnserve.conf (基本常识:vim 编辑文件 进如按E编辑 编辑好后 按esc 后:W 保存 :q退出)

//配置版本库信息和用户文件和用户密码文件的路径、版本库路径

anon-access = none //默认是只读readauth-access = write //认证后有写入权限password-db = passwd //帐号密码配置文件authz-db = authz //权限配置文件realm = first //改成自己的版本库 生效范围

8.编辑authz权限文件

vim authz

//文件,创建svn组和组用户的权限

[group] first = ddl,shl //创建一个first的组,并制定两个用户ddl和shl  [/] //制定根目录下的权限 @first = rw //first组用户权限为读写 * = r //其他用户只有读权限 

9.编辑passwd权限文件

vim passwd

//创建或修改用户密码

[users] ddl = 123456 //用户名 = 密码 shl = 123456 //用户名 = 密码

10.设置SVN服务开机自启动

  1. 在root目录加入svn.sh
 touch /root/svn.sh

2. 让后在svn.sh写入内容

 vim /root/svn.sh

----下面是写入的内容----

 #!/bin/bash /usr/bin/svnserve -d -r /znjg/svn/cnmiaosu

3. svn.sh该脚本添加可执行权限(非常重要)

chmod +x svn.sh

4. 加入自动运行

vim /etc/rc.d/rc.local

在打开的文本末尾添加脚本的路径:

 /root/svn.sh (按esc 后:W 保存 :q退出)

5.最后 给 /etc/rc.d/rc.local 加入执行权限,因为在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件

 chmod +x /etc/rc.d/rc.local (非常重要)

使用post-commit实现本地提交,服务器端自动同步

1.打开hooks文件夹

cd /usr/local/svn/hooks

2.复制post-commit.tmpl 文件为 post-commit

cp post-commit.tmpl post-commit

3.打开post-commit文件

vim post-commit

4.文件内容清空内容,修改为以下代码:

#!/bin/shexport LANG=en_US.UTF-8/usr/bin/svn update --username ddl --password 123456 /www/web/myweb

注意: /usr/bin/svn 是svn的路径,不是项目路径,应该都是一样的;

--username ddl --password 123456 svn账户和密码

/www/web/myweb 项目路径(需要实时同步的项目)

5.修改post-commit的可执行权限

chmod 755 post-commit

6.在上面我见了一个svn版本库为first,但是这只是版本库,并没有项目,那么我们需要在版本库里面新建项目(也就是建立一个文件夹)

这里推荐使用 windows 下面的 TortoiseSVN 客户端,打开版本库后右键 建立一个 《myweb》 项目文件夹,然后把所有的项目文件 拖入到 该文件夹内 上传svn服务器;

注意:为什么不推荐用linux方式上传项目到svn服务器中,因为linux上传一个个文件遍历上传,比较很麻烦,所以推荐 TortoiseSVN 客户端上传,简单方便

7.在服务器进入项目目录/www/web/myweb,checkout检出整个项目到当前目录

svn checkout svn://{您的服务器地址}:{端口号}/myweb .

//注意目录后面还有一个点

常见错误,我遇到的

  1. 255错误:post-commit没有给执行权限 或者 头部没有执行用sh执行,就是没有#!/bin/sh
  2. 提示跳过目录:服务器目录没有checkout代码,记得一定要先checkout一次,才能同步(!,每次新建项目都需要)
  3. 什么提示也没有:这种情况出现在用工具commit的时候,成功了,但是就是没有同步,建议你到linux下,使用./post-commit手动执行看报什么错误。如果乱码,请将文件内编码格式修改为GBK
  4. 提示**** is a direcitory:/usr/bin/svn你把这个搞错了,他不是一个目录,是svn的路径

需要注意的问题

1.SVN版本库起动方式,现在svn下面有 first、test 两个版本库

1: 单版本库起动 svnserve -d -r /usr/local/svnRepo/first

2:多版本库起动 svnserve -d -r /usr/local/svnRepo

2.如果使用的是阿里云服务器需要在《安全策略》中加入 3690 端口

3.如果使用的是wdcp面板或者其他免费linux面板,需要在防火墙中加入 3690 端口

常用:svn命令

lsof -i :3690 查看svn是否启动 ps aux |grep 'svn' 查找所有svn启动的进程 kill -9 2505  杀死2505这个查找到的svn进程 svnserve -d -r /usr/local/svn/first 启动svnnetstat -anp|grep svnserve查看一下SVN信息svnserve --version 查看一下SVN版本svn checkout svn://XXX.XX.XX.XXX/cmf_cnmiaosu_com . 检出数据

Mac下使用iTerm2让SSH记录远程服务器账号和密码

第一步:打开Finder,在菜单栏找到『前往』→ 『前往文件夹...』,输入:~/.ssh/ 然后回车

第二步:新建一个文件,命名为example吧,里面写入内容:

set user  服务器账号set host 服务器IPset password 服务器密码spawn ssh $user@$hostexpect "*assword:*"send "$password"interactexpect eof

第三步:到官方http://www.iterm2.com/下载并打开iTerm2,菜单栏找到『Profiles』→『Open Profiles...』,打开面板上,点击右下角『Edit Profiles...』

第四步:在打开面板,左边应该是选中默认default,右边找到Command,默认应该是Login shell,选中Command,里面输入:expect ~/.ssh/example

64a1bbcb0b5efbfbe8f0c2af2c032116.png

第五步,下次打开iTerm2,是不是默认就登录上服务器了?极大提升效率。

e4396a766e56398cf855cbd6d9a1276d.png

最后:至此全部结束了,教程不易,且看且珍惜,如果您觉得好,对您有帮助,不防点个赞,收藏备用,评论下,给小编加加油,继续坚持发布经验教程;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值