cncml手绘网
标题:
centos7 安装svn
[打印本页]
作者:
admin
时间:
2021-11-29 10:59
标题:
centos7 安装svn
一丶 SVN简介
( o) \9 z6 U$ M! T' O/ @
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
0 m1 A- j, a7 O1 q' F7 i9 K# Y
1.准备工作
0 o! l. K8 O: @% W5 F8 k
一台centos7 服务器 一台 客户端
5 ?3 U/ h' c2 U: J, {% I
————————————————
) f9 i5 H. D+ Q: H6 {% V
1、验证是否安装了SVN
0 i: K8 u3 r9 d# \$ h
% r$ L) {# y# q5 a/ J* ?2 f
命令: # rpm -qa subversion
! ^! Y7 r5 v H f* S& ~
" n* t, H* A, J# @1 G( r9 u
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
0 j R0 d, D6 q) J( v+ X
4 g, M W* e, ] c) ^8 j
否则,空白
8 P/ O: e/ Y( R( h. z: {+ L
0 \& r, {+ [; x( ~$ N `9 [' d! W
2、安装SVN的命令
: q) e8 X! G( @% w- p
+ e$ h3 x0 V# S2 e! A3 C s
# yum -y install subversion
5 h3 S# S/ f+ |% y6 Y; v8 ~ o
, d3 I5 Z( ]5 f. g0 c
接下来使用# svnadmin create /home/svn/blog //其中blog为你的站点目录 /home/svn/为目录
$ F# F* E/ R* X" U5 S- x! R
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
0 `* F P8 Z* u5 m
5 t0 l+ ^* t# k; g9 C& B
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
& I9 Y/ p) v) P" g+ Q
6 {6 {* c, ?) @. Y) `
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
# I. \ \3 J, H9 D+ t3 b3 p
y: ~0 J, N7 L6 X2 z
- `4 ?6 F* s {2 V& j
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
1 P1 L& R: T' g1 a1 c" @$ x. x
" u5 \9 r6 D0 V" k
# password-db = passwd
$ x# C+ g# u* |3 b6 l: q
4 ~9 m* Q0 d" {5 R; y2 k+ z4 K
# authz-db = authz
+ P7 r! @3 |2 |' p% v% u
) h. \5 A" x% n3 c) h! M) w
5 e, K) ]/ ?3 h1 ^4 U8 V
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
( Y6 l. c" I! S. k; @3 k0 f( C3 U
+ Q% m9 Q8 ?" v, c4 A o' X4 W
登录名=密码
8 ^( U a' X6 }
# F; s( i* n5 T) K- z7 s" t
user=123456
" V& L" W8 d# @, D& e
) |3 I7 q3 S5 `2 J# }% s
: D2 ]% R& _" b O _7 L- y' @
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
) [7 U& _9 Z: U/ Y/ G
& u9 Z9 E% x4 ]9 o, T* D
# * = r
0 b7 P! a9 f0 J: ~/ m% o
4 G& n/ z! \/ N1 y2 X6 U, d
[/]
, N" x: t: A; L" @
+ P# z. h, t2 A6 y8 m9 Q
root=rw
`8 l0 U. A1 A( {
9 k0 a$ D3 V" r9 L- D' U' j7 v
这是用户的配置就完成了
7 o5 o+ ~& t$ S8 ~% \$ l- d
) t6 F0 ]6 V# N( b. D
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
5 Z5 U. y3 `' V
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
3 e. ^2 H) F, v* |" S
) ?5 J$ ^. S( C7 ?
使用此命令开启svn 根据自己设置的目录自行更改
0 \! {' l+ T4 h# _) t
4 u. @. J' f3 m6 g* c
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 z& `9 b; @! P) ^$ L
, d3 F2 n( u& ?, H% m0 e- m2 z
: O% k9 p# z+ q$ x8 W
win下载svn工具
0 j5 y) h3 e# V9 T& a
6 o+ |5 n# K0 q
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接
https://tortoisesvn.net/downloads.html
打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
, a8 Z" I1 w( \# K
! X; g& j) N4 l4 L y$ c
! e) E8 ]% X. V# I& W
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
& L2 s9 Q0 D" h, s+ Y; e
输入你的svn地址 地址请根据自己的设置自行更改
* M0 M9 \& i' ?! R! H' L
; a1 O4 r( D" C1 a. `( f
5 H# m. k; J, c
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
8 r$ `- c6 u- V0 k
6 m; @" D6 l9 x4 I' m. x6 ^
9 r1 P; u/ A/ e
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
2 _; }7 D0 c* y8 N$ U
$ P8 d" Y8 C+ {7 ~; h; C
3 k: Y; O; r: s9 \6 L6 e
" r; h. E, H" h( @! ?4 f/ a. p& C
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
8 o9 x3 j) ~% c+ w/ P* Z
: A) @2 f5 j" u2 q
这时我们保存在版本库的代码就会被同步到网站根目录
8 A& c, }3 K5 C) p- p
+ s( l* `: |9 I$ \
% N; S3 E" W1 P( `5 g9 ^* Y
7 J3 D% I6 c/ n
2 V0 R2 x$ r6 t
& k: [; b3 r1 }5 m; b/ X4 l
作者:
admin
时间:
2021-12-2 19:04
配置同步web目录
0 A+ ~5 Y: j# h% ^8 J
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
$ L( |! J- _( y4 f, G2 t
* h. ^. R( K. k: l7 x2 w+ m# W) K
REPOS="$1"
- y* O$ u9 g3 J' d; Y1 A' u8 _1 b
REV="$2"
+ ^: S5 s3 {. N$ k1 @
TXN_NAME="$3"
% d) E/ ?1 n q0 C7 c( O9 y+ N
AUTHOR="$(svnlook author -r $REV $REPOS)"
) Z, k# J! w! B, A, n
MESSAGE="$(svnlook log $REPOS)"
, }, i9 M5 ~( E6 D4 c' G3 u) S
SVN_PATH=/usr/bin/svn
7 q' C2 F9 g" n; i$ {3 x
WEB_PATH=/usr/share/nginx/html/ssyleo
$ p4 M# i% f8 C, [; G
mkdir -p /var/log/svnlog
" c, F' U$ i5 X7 a; Q3 f
touch /var/log/svnlog/ssyleo_update.log
3 C- }# b: Z* W( M7 H2 v7 w4 T
LOG_PATH=/var/log/svnlog/ssyleo_update.log
9 C) r9 U( v" g& N. {/ B# C) R
echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
3 J4 D& S# J% k: l' \
echo $AUTHOR,$MESSAGE >> $LOG_PATH
3 I" [4 T' ~, i
echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
& G2 \& t. T/ t5 ~) k, W7 R" P4 G/ N
$SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ L; y; Q8 ^! s2 O' m; `& x7 N
# \, d) W+ X }7 x- n4 ^
#!/bin/sh
0 _8 V1 G8 k C ~- \; ~+ n
#设定环境变量,如果没有设定可能会出现update报错
3 S+ t0 T Y$ ^9 @7 x
export LANG=zh_CN.UTF-8
- f; D% I* v% E1 Q% t1 U
REPOS="$1"
0 V3 @& h9 v/ i0 U7 N
REV="$2"
# ~& z; c- J" O5 I4 `, q( H: X5 F) D
SVN_PATH=/usr/bin/svn
' H5 i' ^, @/ w& Y! O$ ^
WEB_PATH=/web/project
' W3 ]8 Y+ x0 t4 ^/ Y
LOG_PATH=/tmp/svn_update.log
8 z l- F- K: Y; ]1 d* i
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
( R I- c; p7 B8 c% ~
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
. [! e, r: ]! O( Z# h
echo `whoami`,$REPOS,$REV >> $LOG_PATH
6 E9 c* V. B" E/ ` V
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
6 N: S' s. h5 I) x; D
chown -R www:www $WEB_PATH
复制代码
4 B6 a, j3 k2 w3 O
作者:
admin
时间:
2021-12-2 21:57
#!/bin/sh
9 u: G4 W p9 V- W
export LAND="zh_CN.UTF-8"
/ G5 p( B6 n# a; ]
REPOS="$1"
, i9 t8 x( O1 J+ W, ~
REV="$2"
1 d |, J1 S: e* K- a2 Q. ~6 n$ s
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% `: @: o' m, ~6 j2 X& b* x% k
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" i9 ~9 H1 n! L5 [
9 h% ]' C3 o* p& |( E% o# l" {
#!/bin/sh
( a6 ~ _4 r1 M- l* y: K
export LAND="zh_CN.UTF-8"
. n. ~8 D2 _# I7 l9 H1 a
REPOS="$1"
( k5 k: p: H+ i& @- ]$ C
REV="$2"
5 K) q5 f3 N) l) I! }
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) n* G5 f( {$ O8 X
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
. u0 V% G1 H: ?$ m, S6 E7 P
! g/ ^" v8 x0 V4 y& L- \% F4 g
欢迎光临 cncml手绘网 (http://www.cncml.com/)
Powered by Discuz! X3.2