cncml手绘网
标题:
centos7 安装svn
[打印本页]
作者:
admin
时间:
2021-11-29 10:59
标题:
centos7 安装svn
一丶 SVN简介
) w1 P0 A) |1 O% t% s/ m3 w2 A
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
- ~" N7 e# m3 s2 ^! y+ P
1.准备工作
& s3 D4 k5 t4 y: H
一台centos7 服务器 一台 客户端
0 x6 Y- p& [0 G' N0 X
————————————————
' g8 ?0 ?9 [- j$ v! j) Y
1、验证是否安装了SVN
0 K3 L' g( l6 P: H$ g
; P- P" {& n1 I- u H
命令: # rpm -qa subversion
: V: ?/ @7 d' s& u. c
3 x+ p) j/ M7 q
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
7 B# k, }4 _: [0 Q# Z! ]8 _
; b! V9 I6 ?6 G6 P& T
否则,空白
' d2 Q+ W3 \- {) O& L
+ ~$ X% A0 x" ^) o' _2 ?5 a* [
2、安装SVN的命令
& M. ]% Y, f% {4 {$ w' j, }9 J
/ c' s9 N2 D* X' _7 l! {$ K
# yum -y install subversion
6 B' j3 [: o, K" O8 |, O# @
4 e7 u/ E; D1 F. v0 e2 w
接下来使用# svnadmin create /home/svn/blog //其中blog为你的站点目录 /home/svn/为目录
1 y2 O. E; l' s
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
/ k' Q; g1 j- U
`% W& K- G9 ^3 Q
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
: i+ n! N' e. T4 a: r2 H7 d6 b
6 @9 Z& I* M7 |1 q, C
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
! I) J0 Q4 D+ W/ H3 _& m7 U
- d) q9 S2 o# D& s$ a5 {7 i9 d
% u8 ^9 I0 N+ t! p/ E
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
( q" H! ?& l5 X$ ^# c C
6 p2 y- k+ R. c3 ~8 F# A
# password-db = passwd
9 K6 h% T% A2 }
; G# `2 p% j6 [. r: V' f
# authz-db = authz
0 J7 I" E v. _5 C' D! W' _: E9 I e
9 |0 S; ?; }& C% s/ y
1 _- L- \2 o8 v1 L
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
# j: u: ?. b+ ], A' ~! L
0 T1 T" {9 r9 @$ q
登录名=密码
- J2 ]4 U$ X9 A/ d+ t
" |) w! i# T1 T" N- a) V( D3 R
user=123456
$ Z! {6 f" J& D# L
0 g, Y( }7 t! M
7 v& X1 Q: ]- [/ u( D' ~
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
% }$ p$ X5 [4 ^
! r' J# D. W2 f. c
# * = r
2 x& r+ ^" W! ~+ S1 D: T
2 j3 j% d; P. T7 ]! [. _
[/]
/ f& ]8 w( }5 ]: l2 T/ ]+ s
9 I# T( d9 V' m3 Q4 \+ z
root=rw
9 I) a, Q4 n' `/ ~# A
/ `& u& a8 O( g0 Q1 M8 _9 L8 H+ N% l
这是用户的配置就完成了
+ X# E/ }2 o; I; w( L
& s9 T! O3 |1 [+ J, i7 ?
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
( T. t2 t" C4 W: z8 ?4 b" @
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
+ }( p9 z6 i: e4 @' C& ~
9 }( S9 Y7 v$ D: v
使用此命令开启svn 根据自己设置的目录自行更改
0 Z$ _1 Y s% ?/ T: _ u" `
. Q0 H m) G" j: P/ O* ~
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 _; @& E& O; T1 y" s( R
' K. y5 t1 ?: D0 @, c9 Y; N
m. a5 p* x, A) `: g
win下载svn工具
! @9 m1 ~4 Q) s) ^! N Q
/ `5 [8 k; U9 z% G2 ?. \
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接
https://tortoisesvn.net/downloads.html
打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
; b0 L }4 p6 ~
# b q( {! |$ s, g! K4 V
V8 l: i0 F" W: y! U5 b6 k
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
! T$ D5 r/ q" c
输入你的svn地址 地址请根据自己的设置自行更改
" b. G+ V% g7 ~( Q A) D
( y% ]1 R, D5 n$ U' B4 y
( Q/ o' B# Z" H, ~' v
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
2 e& ^* ?/ J+ D4 h0 z' s
5 L L3 }* h* u( H, `. C5 z
3 T" I; Z/ P8 E& ~6 A7 ~
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
0 s0 B, k; c+ B! Q
9 y/ g9 h- t W# N" N& f: D
' ^3 f; g% M4 D% u7 b1 H. p+ y+ Y
* J2 S! q6 u# F _0 a8 d8 A
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" a5 O2 @0 Z! r* l
8 ?2 O6 g, [9 Y0 d" u
这时我们保存在版本库的代码就会被同步到网站根目录
- `: `: v2 c3 F" i
- g+ | w/ r: e/ M
% G0 V& Z4 a% F: ^
- M" ~5 f+ a4 u9 U7 d& V
) r4 E) \; r2 r& T1 W" g+ e7 Z
4 u) n$ m E" ]$ Q0 Y
作者:
admin
时间:
2021-12-2 19:04
配置同步web目录
. i, T) Z' h+ b/ x
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 b9 R! ~" F2 s/ m- r, k2 c
, ?9 Z7 c9 X2 \6 s8 g { Q/ G
REPOS="$1"
1 Y0 f0 s9 p; ^5 [0 m
REV="$2"
: z% M. v9 I/ L8 d8 T5 o
TXN_NAME="$3"
1 Y# H! ~; Y) R3 A6 k+ J
AUTHOR="$(svnlook author -r $REV $REPOS)"
1 ^6 e- g( D8 D! U c. A' r& [8 G2 q
MESSAGE="$(svnlook log $REPOS)"
1 j. o2 {5 c7 i1 j' ?0 N. B
SVN_PATH=/usr/bin/svn
. F5 V0 s; p3 G, D1 m1 A
WEB_PATH=/usr/share/nginx/html/ssyleo
+ L" D" J) j* b, M+ f
mkdir -p /var/log/svnlog
, V+ l4 Z. ?; O N3 x( R- H; |
touch /var/log/svnlog/ssyleo_update.log
/ [$ A3 A. |2 c4 B8 _3 Z
LOG_PATH=/var/log/svnlog/ssyleo_update.log
# |/ [8 k% r9 s6 j; X& C* N; V& i
echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
- ~: F- v" ?1 u+ U% M. n0 b
echo $AUTHOR,$MESSAGE >> $LOG_PATH
' J. v; [( q8 I: u' w
echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
. L+ m- R U/ [( d3 b/ j
$SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
) t, C" x+ g8 \0 v
/ t& E& m- M) T( Z' F* M/ h
#!/bin/sh
9 n9 Z! T) x' O/ K
#设定环境变量,如果没有设定可能会出现update报错
- Y" `2 z4 _# S! F
export LANG=zh_CN.UTF-8
3 G1 \. S; P+ s5 ~6 Q& q
REPOS="$1"
7 \' i+ a: X* R8 K
REV="$2"
# o, w+ }# y$ K2 r
SVN_PATH=/usr/bin/svn
~! _; ~: b) b" _" z( l x( d
WEB_PATH=/web/project
; ~; y; T' q# {
LOG_PATH=/tmp/svn_update.log
) [. I. b- c) R; P A
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
' f" W( ?* r1 O" X
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
9 ?5 E- Y( B6 V# h+ U. z
echo `whoami`,$REPOS,$REV >> $LOG_PATH
* l5 N5 D8 M* v3 W+ Q) i* E
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
, k8 A# X; S2 X4 l4 g- O
chown -R www:www $WEB_PATH
复制代码
! V0 _/ d/ {3 T
作者:
admin
时间:
2021-12-2 21:57
#!/bin/sh
0 S, C0 v0 H- W6 U
export LAND="zh_CN.UTF-8"
f. }5 t9 R( h/ _' @/ A
REPOS="$1"
2 F! h. L5 U3 M
REV="$2"
; {8 ~4 G3 @- k7 ~7 L* ~4 o; A
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
! V8 w, C2 U. M3 A: k4 t
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
6 A' P* D( q. N/ s1 V5 X& q$ h
7 @8 ?, S7 N3 v+ Q3 _' A0 p
#!/bin/sh
5 r' e5 \* H7 }% {9 m% [
export LAND="zh_CN.UTF-8"
) a: V1 J7 r8 B
REPOS="$1"
% ?* g1 Z2 H$ ^+ x! K1 U, _
REV="$2"
9 |: i4 C; `' W* m+ @) k
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" O0 z* E- S5 }# _: ]5 ~
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
* H" q. H& o; w: y& @8 ]
: }4 _5 m! x. i T. v
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2