本地搭建svn服务器(服务器创建svn)

zzxiexin 4 0
简介

这个需求是我们公司自己的需求,我想也是大多使用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服务开机自启动

在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 .

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

常见错误,我遇到的255错误:post-commit没有给执行权限 或者 头部没有执行用sh执行,就是没有#!/bin/sh提示跳过目录:服务器目录没有checkout代码,记得一定要先checkout一次,才能同步(!,每次新建项目都需要)什么提示也没有:这种情况出现在用工具commit的时候,成功了,但是就是没有同步,建议你到linux下,使用./post-commit手动执行看报什么错误。如果乱码,请将文件内编码格式修改为GBK提示**** 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\r"interactexpect eof

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

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

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

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

标签: #本地搭建svn服务器

  • 评论列表

留言评论

 
QQ在线咨询
售前咨询电话
173-175-32776
技术支持电话
173-175-32776
嘿,欢迎咨询