博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
腾讯云使用笔记二: 安装svn服务器及web同步
阅读量:5934 次
发布时间:2019-06-19

本文共 3088 字,大约阅读时间需要 10 分钟。

官方文档参考:

A01:安装subversion

sudo apt-get install subversion

A02:创建仓库

很多目录可以放subversion文件仓库,最常见的是/usr/local/svn和/home/svn

sudo mkdir -p /home/svn/youshengyouse sudo svnadmin create /home/svn/youshengyouse//说明:先创建目录(-p多级创建),再在该目录下新建版本库

A03:启动svn网络服务

svnserve -d -r /home/svn// svnserve不要写成svnserver// -d表示以守护方式启动// -r表示仓库的根目录,这样svn://ip地址/youshengyouse/就表示对应的仓库路径为/home/svn/youshengyouse

A04:配置仓库

先备份配置文件

ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp svnserve.conf svnserve.conf.bak20180907

/home/svn/youshengyouse/conf/svnserve.conf文件的内容如下

anon-access = readauth-access = writepassword-db = passwdauthz-db = authz

/home/svn/youshengyouse/conf/passwd文件的内容如下

先备份buntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp passwd passwd.bak20180907

[users]aaaa=aaaamimabbbb=bbbbmima

/home/svn/youshengyouse/conf/authz(先备份)

[groups]develop = aaaa,bbbbmanger = aaaa[/]@develop=rw*=r

修改后要重启

svnserve -d -r /home/svn//如果报错svnserve: E000098: Can't bind server socket: Address already in use查下svn当前占的端口root@VM-0-14-ubuntu:~# ps -aux | grep svnroot     16960  0.0  0.1  72492   940 ?        Ss   14:29   0:00 svnserve -d -r /home/svnroot     19765  0.0  0.0  13232   880 pts/5    S+   15:20   0:00 grep --color=auto svn//kill进程kill -9 16960 //再启动svnserve -d -r /home/svn

A05:编辑腾讯云安全组

添加规则

0.0.0.0/0 TCP:3690 允许 -
否则会拒绝svn访问

A06:安装客户端

下载地址:

A07:测试

仓库路径为 svn://ip地址/youshengyouse/

检出(checkout)成功,新建一文件上传,也成功,ok,万里长征,完成60%

常见问题

提交如果报错

Can't connect to host '134.175.42.125': 由于目标计算机积极拒绝,无法连接。
原因1:svn服务未启动

line 1: Section header expected

原因:一般是本个配置文件格工或哪里多了空格之类的

can't open file db/txn-current-lock:permission denied

原因:权限不够
$ sudo chmod -R 777 /home/svn/youshengyouse

post-commit hook failed (exit code 255) with no output.

原因: post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。
sudo chmod 777 /home/svn/youshengyouse/hooks/post-commit

============如何让svn代码与web网站同步=========

只在svn提交就可以,不要再向网站提交代码

B01:新建钩子文件 post-commit

#!/bin/bash# 基本变量export LANG=en_US.UTF-8dateTime=`date +%F`dateTimeMinute=`date +%H%M%S`binSvn=/usr/bin/svn                     # 你svn命令的绝对路径,如果不知道,请用find / -name svn查找dirHtmlApp=/var/www/youshengyouse/      # 检出的web站点根目录logFileName=/tmp/youshengyouse_svnhooks_${dateTime}.log# svn配置#   [1] REPOS-PATH   仓库路径#   [2] REV          刚执行修订版本号#   [3] TXN-NAME     (the name of the transaction that has become REV)REPOS="$1"REV="$2"# 检出或者更新subversion,钩子的核心功能echo  "-- $dateTimeMinute" >> $logFileName# 先要将svn仓库中的内容检出到网站对应的目录中,如何判断有没有检出过呢,就是看是否有文件夹.svn# 如是检出过,就直接更新就行if [ ! -d $dirHtmlApp/.svn ]; then   # 检出SVN   echo "$binSvn co file://$REPOS/  $dirHtmlApp" >> $logFileName   # 使用命令co检出   $binSvn co file://$REPOS/  $dirHtmlApp   if [ $? -eq 0 ]; then      echo  "checkout ok"  >> $logFileName   else      echo  "checkout error"   >>  $logFileName   fielse   # 更新svn   echo " $binSvn up $REV $dirHtmlApp " >> $logFileName   # 使用up命令更新   $binSvn up $REV $dirHtmlApp   >> $logFileName   if [ $? -eq 0 ]; then      echo  "  update sucess "  >> $logFileName   else       echo  "  update fial "   >>  $logFileName   fifiecho  "--" >>  $logFileName

B02:上传

建议先用测试下,检出,上传,删除后,确认无误后再进行批量操作

转载地址:http://csjtx.baihongyu.com/

你可能感兴趣的文章
Swift iOS : YYText计算文字占用高度
查看>>
【1分钟知识点】利用「占位块」弥补 space-between 的不足
查看>>
使用 redux-observable 实现组件自治
查看>>
构建你的第一个Flutter视频通话应用
查看>>
React之setState
查看>>
Laravel 5.7 正式发布,同时启动中文翻译
查看>>
SpringBoot项目远程Debug模式(Eclipse)
查看>>
前端性能优化之http请求的过程
查看>>
Vscode 扩展开发实践 jump源码分析
查看>>
2017 Material design 第二章第四节《Material的变化》
查看>>
ajax中的suceess函数使用this
查看>>
Java类集框架 —— ArrayList源码分析
查看>>
[译] 使用 Node 和 OAuth 2.0 构建一个简单的 REST API
查看>>
程序员月薪多少,才能在北上广买得起房?
查看>>
老司机 iOS 周报 #2
查看>>
CardView源码解析-View阴影
查看>>
Android自动生成代码的2种方式
查看>>
让人疑惑的Java代码 - Java那些事儿
查看>>
用 Vue 撸一个微博客户端
查看>>
False SQL Injection and Advanced Blind SQL Injection
查看>>