cncml手绘网
标题:
centos7 安装svn
[打印本页]
作者:
admin
时间:
2021-11-29 10:59
标题:
centos7 安装svn
一丶 SVN简介
- s2 C; v- t' a
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
* A" b! ?4 Y# |2 z9 t: X# ?8 ?: x D2 H
1.准备工作
4 Q. Z& p9 H u! n
一台centos7 服务器 一台 客户端
$ b" K8 o- r$ Z% A5 O: D' Q( q
————————————————
3 ~1 Q. N+ g( o: {) O! J( z$ t
1、验证是否安装了SVN
- I' w/ r' v+ E/ k
; v8 b" M9 y3 D/ J
命令: # rpm -qa subversion
6 W$ Y9 H9 {% W. w
8 I, b, b) x- D# K- U; s
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
2 C& s. W# P3 {: j& V8 V
, ~3 n- y- Y G
否则,空白
" c9 |" J" a; ]5 E6 d+ \
- N8 _9 n# K: _6 \8 |" h
2、安装SVN的命令
) q( x! u. G7 a: P
8 Y, W! y* _* y3 a1 j
# yum -y install subversion
3 L! {+ k; y5 L
5 D, |! w6 _8 _' i- P3 F7 D
接下来使用# svnadmin create /home/svn/blog //其中blog为你的站点目录 /home/svn/为目录
. ^" ^9 i7 Y5 g
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
$ i' q+ F4 ]% ]. a3 \2 X) e' V2 H
- V" S- B9 A6 U
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
`" }% l' y# K6 P
* W/ n S: e6 f$ V
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
, x% O u/ i1 V; o
8 l* B- @3 y1 k7 a' S7 C
7 L( `' S& [: m5 b- f* o) `5 X# m
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
5 h! h3 _3 V7 _" u! ~& A
. Z) n1 L& K8 P( U0 l4 \
# password-db = passwd
- `/ a$ w% w, A, v: R X
' L3 H, Z' l6 n$ l
# authz-db = authz
) C) y4 P& C' I6 D5 G% _* e
& P s# H% [6 X- T5 ?4 P' e
4 K! Q: A. {# Z( q
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
3 i$ q) Z- u! R+ y
6 B' N/ @% m6 [( r" a
登录名=密码
6 R- t: L( J0 c+ W. h' |: f
: _( Z$ s8 s* V5 `# W
user=123456
- `; m0 [9 q2 d) `
' T% p3 r2 p! U; M" V& u, i3 N3 R! k1 K
- |; u* w! @$ A& P+ X& E
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
% a* k [# n: e
% m1 r/ \, x8 L3 Q9 |5 V' }9 j( w/ q" j
# * = r
5 P3 Z: v1 f+ u& d5 J
9 e: W3 T, q- \' I N
[/]
2 S+ @! ?* q ~$ l* ^
% a# S, r7 J- d" L- X: ^
root=rw
4 Z. h6 D- G% Z/ V7 y0 h6 \
$ f3 H2 D8 k+ J( L* `2 G
这是用户的配置就完成了
, r# r% W3 J# W
0 `7 C9 I1 j8 N/ Z: e/ N) d- S
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
# o) O7 k. s. o0 W7 z' u$ `* \
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
% ~" v9 _8 d- W/ D8 G2 k# U
. V% |6 D+ B! N1 M
使用此命令开启svn 根据自己设置的目录自行更改
/ q" p: H4 |! o" j2 D
( L: D! H% H9 |) a- Q5 x
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
' ]! `8 w' z9 U6 T0 S
3 A" S5 R+ q& ]) T
1 u) X5 s* E& z8 n6 T
win下载svn工具
b$ Z$ h7 A( ?! J$ D
0 h7 X3 i, }$ T) t
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接
https://tortoisesvn.net/downloads.html
打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
+ \4 R% I0 H" |, p
" i5 I6 N2 {( Q+ r
; l9 w3 H6 I- w( @
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
! X3 b' a$ K, {! t% K
输入你的svn地址 地址请根据自己的设置自行更改
0 t H) o5 i' }! p) E
8 `' |7 i8 f/ Q( {( ?( E: a5 F
- L2 t \# f2 S. {
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
R, V/ K2 ~( e6 K' i
# t z$ D+ } L$ @7 l
5 P2 [# n* ~% B% J
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
1 S0 U, ?% A- E5 j& r3 w Q- [
" g" H7 K$ R. O! w
3 Q1 k8 ~) l( ?# P. u( s
" a2 ?1 w- _& y5 |/ m& `
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
5 ]) z# v8 U0 U3 v
( g) u! }/ M" O, r& u! [
这时我们保存在版本库的代码就会被同步到网站根目录
3 s8 X; x8 P, n
: J/ U8 ~9 z) V
[6 O7 I$ E# E' P7 Q' k
! M Z9 s% [; ?- g, l
6 g) e+ `, i! W$ j0 F9 B* ~
5 p a2 E) y( i( W: h3 l
作者:
admin
时间:
2021-12-2 19:04
配置同步web目录
% X! B1 R& s g5 @4 W& u1 t
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 ?# t$ t: f5 A, s, X
; s; `" D7 Y& c3 j# z" j" H( Y
REPOS="$1"
1 Z8 d- B7 d W i9 Q( Y" }
REV="$2"
- z1 h! {$ N4 a- b& d$ \7 q5 i
TXN_NAME="$3"
5 F9 T- \* a/ e" I/ i6 W) ]
AUTHOR="$(svnlook author -r $REV $REPOS)"
9 R) T( ]# F D$ d6 {8 I
MESSAGE="$(svnlook log $REPOS)"
j8 w' R/ _2 m7 i( M
SVN_PATH=/usr/bin/svn
) L# v. z4 W; _9 b
WEB_PATH=/usr/share/nginx/html/ssyleo
1 {3 B$ }: E' o8 l
mkdir -p /var/log/svnlog
9 k9 L9 K* Y" N$ G6 l2 S' R! T- t
touch /var/log/svnlog/ssyleo_update.log
4 e% H- w, z+ L5 c* @! F
LOG_PATH=/var/log/svnlog/ssyleo_update.log
U. ]. }: E6 A
echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
+ O) O" t. J7 Q. f0 F% G/ }! K7 f/ s
echo $AUTHOR,$MESSAGE >> $LOG_PATH
) U' @/ X% z _, |' W; |7 ?" t# [0 I
echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
. ]: y8 j/ s# [, u+ L9 N" g! R) e
$SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
2 ?' X* S) `/ y9 Y+ E
( M, L8 b# E; e0 W3 P- }: Y
#!/bin/sh
G2 V$ s, ~) I% z
#设定环境变量,如果没有设定可能会出现update报错
5 r% W: `4 N* y N
export LANG=zh_CN.UTF-8
* ]1 t* V7 u5 Q; f$ e$ m1 m' u
REPOS="$1"
! c0 V5 Z W/ `! b k
REV="$2"
4 N/ j6 V! F+ e+ e' P- `# O, U
SVN_PATH=/usr/bin/svn
1 ~5 k9 Y+ \4 I5 S( d
WEB_PATH=/web/project
7 j6 Y5 E) g& F$ U( T3 D
LOG_PATH=/tmp/svn_update.log
( x- s$ x. p% Z1 d4 d
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
* c) ^# y9 n# D2 h" G
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
% Y5 n, f) j, c Z6 _
echo `whoami`,$REPOS,$REV >> $LOG_PATH
+ R) H4 O& C+ c2 n7 [
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
2 \% F" x0 V! G0 D/ M5 P6 @
chown -R www:www $WEB_PATH
复制代码
# T* _8 z+ |' R7 K/ I, i
作者:
admin
时间:
2021-12-2 21:57
#!/bin/sh
: k% Z! f4 N, Y. e
export LAND="zh_CN.UTF-8"
1 a) I- q( w' c+ I4 I. |
REPOS="$1"
- f& d# [ z1 S. F' Q" h0 E0 ?
REV="$2"
. S# a6 v: u' W$ Z
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% {$ a; q1 J9 b/ L/ a0 w3 m
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
: _6 B( [' l4 K0 V& I$ Q
# j' U* `- P5 k$ G5 Z/ E" J! p! e
#!/bin/sh
( G! y u! W; \3 m; G" Q7 B
export LAND="zh_CN.UTF-8"
% q. J" E" |& n$ ]
REPOS="$1"
, E3 B* B0 y) R+ x: _ H5 j
REV="$2"
, [% g8 L( _. @% J
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( Y5 {* n ~% U! I% ]
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
+ M- c5 c! o2 S0 Q* P8 m7 ~
\: k' E# G! S) O$ _# f
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2