资讯专栏INFORMATION COLUMN

ubuntu下搭建svn,并用钩子同步到web目录

CastlePeaK / 1445人阅读

摘要:前言最近在搭建服务器,用到了版本控制,在搭建过程中也遇到了好多问题,简单写一写步骤安装创建项目目录创建一个文件夹,用来存放一个或多个项目进入这个目录创建一个新的项目目录创建文件仓库这一步是让这个新的文件夹变成的版本库权限设置进入设置目录包

前言

最近在搭建服务器,用到了版本控制,在搭建过程中也遇到了好多问题,简单写一写

步骤

1、安装SVN

</>复制代码

  1. $ sudo apt-get install subversion

2、创建项目目录

</>复制代码

  1. $ sudo mkdir svn //创建一个文件夹,用来存放一个或多个项目
  2. $ cd ./svn //进入这个目录
  3. $ sudo mkdir project//创建一个新的项目目录
  4. $ sudo svnadmin create ./svn/project //创建svn文件仓库(这一步是让这个新的文件夹变成svn的版本库)

3、权限设置

</>复制代码

  1. $ cd ./svn/project/conf //进入设置目录(包含有authz hooks-env.tmpl passwd svnserve.conf)
  2. $ vim passwd //添加用户设置密码
  3. [users]
  4. root = 123456
  5. user1 = 123456
  6. user2 = 123456
  7. $ vim authz //编辑用户权限
  8. [groups]
  9. admin = user1,user2,root
  10. [/]
  11. @admin=rw
  12. *=r
  13. $ vim svnserve.conf //控制访问权限
  14. [general]
  15. anon-access = none #匿名用户(anonymous users)的访问权限
  16. auth-access = write #授权用户(authenticated users)的访问权限
  17. password-db = passwd #密码数据库文件的位置,这里指向同级目录下的passwd文件
  18. authz-db = authz #用户授权规则文件的位置,这里指向同级目录下的authz文件

4、启动svn

</>复制代码

  1. 启动svn
  2. $ svnserve -d -r ./svn //这里的/svn 的目录就是你第一步创建用来存放项目的那个目录
  3. 关闭svn
  4. 在配置过程中如果需要关闭svn则kill
  5. $ ps aux | grep svn
  6. root 21618 0.0 0.0 69596 616 ? Ss 19:07 0:00 svnserve -d -r /svn
  7. root 21927 0.0 0.2 11748 2156 pts/0 S+ 19:10 0:00 grep --color=auto svn
  8. $ kill 21618

5、配置钩子(如果不需要配置到web目录,在上一步完成后既可以检出使用)

</>复制代码

  1. $ cd ./svn/project/hooks //在这里svn提供了好的钩子模板,你可以根据自己的情况选择模板,一般都是选择post-commit.tmpl(提交后更新)
  2. $ vim post-commit //新建文件
  3. #!/bin/bash
  4. EPOS="$1"
  5. REV="$2"
  6. TXN_NAME="$3"
  7. export LANG=en_US.UTF-8
  8. /usr/bin/svn update --username root --password 123456 /var/www/项目目录 > /tmp/www.log || exit 1
  9. exit 0
  10. if [ $? == 0 ]
  11. then
  12. echo "ok" >> /tmp/wwww.out
  13. fi

6、设置模板执行权限

</>复制代码

  1. $ chmod 755 post-commit

7、先在www目录里检出

</>复制代码

  1. $ /usr/bin/svn checkout svn://你的服务器地址/你的版本仓库
  2. 注:如果是新买阿里云的服务器记得打开端口访问限制

8、本地检出完成!

现在即可提交并同步到web目录了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30606.html

相关文章

  • CentOS 搭建SVN并用钩子自动实现同步web目录教程

    摘要:后自动同步到网站根目录的方法为什么需要同步呢原因是我们的文件其实是提交到了的仓库中,仓库不是一个实际的网站根目录。进入到项目下的文件夹把的扩展名去掉,并赋予权限。你的至此已经配置完毕,并且可以实现本地一执行上传,自动同步到网站跟目录。 前言 笔者服务器环境、目录情况: 系统:CentOS 6.5 网站根目录:/home/wwwroot/test/web 为什么要用svn? a.方便多人...

    zxhaaa 评论0 收藏0
  • git webhooks 实现自动拉取代码

    摘要:而利用的功能,能够让我们省去这一步,下面我就以码云的为例,实现服务端的代码自动同步部署。查看是哪个用户执行该命令参考文章使用脚本远程部署项目利用实现自动部署代码码云通过实现自动同步代码部署执行系统外部命令函数 当进行开发的环境在本地,而运行的环境要在服务端时,每一次提交代码都需要在服务端pull一次。而利用git的hooks功能,能够让我们省去这一步,下面我就以码云的webhooks为...

    marek 评论0 收藏0
  • 腾讯云使用笔记一: 腾讯云重装记录

    摘要:或少了因为启动时不是账号,就会这样前面别忘了加文件直接下载,不解析因为没有配置的解决办法引起通常是三种情况一是缺少索引文件,二是权限问题,三是状态。 ========腾讯云重装记录================ 安装时间:2018-09-09 12:15开始,结束时间: 一:重装操作系统 进入腾讯云后台,微信扫码登录 选择主机/更多/重装系统/服务市场/Docker容器/腾讯云容器...

    ashe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<