您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12276|回复: 2
打印 上一主题 下一主题

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
- [% e" L/ G1 P% `! P" CSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)" S5 y$ k# Z1 f1 w. ?
1.准备工作
- |! E: {( J. z% y0 L7 G一台centos7 服务器 一台 客户端+ H# Q0 H$ M1 R. |1 ^& t
————————————————8 _+ o# K( D: `: \
1、验证是否安装了SVN
  U8 v: r) ~; f9 T+ |
' M! B3 L2 W5 c/ W命令: # rpm -qa subversion) L* ~) z9 r7 S: b: W5 Y* {
' W! [# n" D- h% ?9 H& l
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
" _0 R: ~7 x7 S. X) W3 r) ^$ {& e6 y0 [% W# T; v6 y
否则,空白
$ N( ~* a$ ]/ H+ I; s6 Z3 k( i3 L
7 i; t# H/ k  @. m& V( Z, o2、安装SVN的命令. x7 V9 I" y* R, N/ ]. s$ n4 \. b6 |
  b1 `6 P7 m& K  I& I
# yum -y install subversion
( ]! F9 m  Z3 A$ s- s! J
% A% S7 N- z" b; P5 H, B接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& t. v  }3 v& P4 m! q创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" k+ |( w0 ^5 W- J9 @) I+ t7 I( p

  E4 r2 \; M; x# e9 {, e+ H5 ^9 ?然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
& p% X  x: I& h: a* ~% s: C3 e* M0 S, g3 f1 a" w! v
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)" U; Z$ o: E! Y' }9 m
& R, b0 S, K) r8 d) a; m

% K* O9 O* s& ~首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
1 b% v2 m) r6 p6 H% y  T8 S+ s- T$ i# y
# password-db = passwd
1 a; v; F9 u, d6 K( I2 g  v! F4 W8 q4 n" ?; L% ^
# authz-db = authz
' \) d. I2 l2 |" B, R) z; b: t) N& @" @1 v, u

3 y+ C- E- K; F( `5 G然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
8 L) T8 W+ K! D' K" R2 s1 ?, o: P- ?8 v; r. j$ J
登录名=密码" D  ?, ?; B2 Q2 G
! |9 o* I. e) ^0 n9 V
user=123456
. ~: @. [' N7 I/ w% }4 m: x* |3 w( b; U/ L
  ?, q- f/ ?8 d7 a4 F7 g! s
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
7 `  c2 a9 b8 U7 C& `
+ p5 M) l; s; W# * = r
4 B% r4 M% ^8 N6 k- M
  S! ?/ A" w. c' |1 d: v[/], A  R- z; g- _6 D! b

: M: ~" b5 B2 L2 |' hroot=rw# k8 }0 }7 i, }; {: F' d! m

0 }, M' j( U( h3 w: q5 O8 m# n这是用户的配置就完成了/ @( k/ Y8 F2 o7 v6 @. l% u

" \9 i( ~7 q$ Y8 R接下来我们就需要开启svn svnserve -d -r /home/svn/blog
. e) j) A+ W3 d6 Ksvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
" Y4 {; s! Q; `) a/ @. n4 ]& L2 L: j0 Q$ R1 J% @) d9 Z
使用此命令开启svn 根据自己设置的目录自行更改, o+ T. j* k/ D$ ?( y+ C7 t
, O" d. Y. b# ?" D
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了9 D. Y% N$ b% D  n
" f. ^/ ]' I- z9 ?, }
; }0 a8 V, p$ ?( m/ g
win下载svn工具- [3 Z- W3 v' S5 S8 D+ f
3 f4 q# E& z8 X+ V& `
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
* {6 m7 E; |, l  S
. g3 b  J" H2 Z6 u! d0 m. x! B0 T( F
. A2 z* b7 i5 T" P  O  K重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
4 i( Y: [2 s+ ?# J5 }+ L& x输入你的svn地址 地址请根据自己的设置自行更改: w# S0 V* t9 _' E& q; h
6 n# J4 \/ ^; ~! ~# e2 c

' t; P1 c5 q; r/ A; P  b! Y然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
" u+ W' Q  w. g7 y9 i6 }5 L( ~- M% @

$ v$ h9 U; \- C) f) W6 w- e- q(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)! i/ Y- y' {( k3 ?' \
7 y: _5 x% G7 j. W2 L3 L" q/ z" N
) B" D! j" `7 {! M& u

3 x' F: X% ]5 _* W可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存7 ~5 d/ C( F, ?$ V7 |! |

0 e3 S( R1 S) n4 D/ L; q这时我们保存在版本库的代码就会被同步到网站根目录
. ]/ M3 X7 ~, `% i2 ]( D
* u$ |* V/ l( p: X# S0 I1 B6 W/ c2 B; ^1 M

+ j' P$ C3 [+ r* @; h! i
3 K& a. p. i: _5 r* q1 C% o. W+ r7 B0 Q) m4 y. K$ d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 ~! O4 E2 i" X, g. s7 e
export LAND="zh_CN.UTF-8"& P! e9 m6 W. Y3 Q, U
REPOS="$1"7 }- h8 c0 a* f7 x) @: F4 R& A8 J
REV="$2"
" O8 j/ ]+ u' E6 D+ F; P; rsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
5 x  L) k- J) w, E$ t  y# t) ysvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
; Z8 C2 }# T1 F6 @

  1. 5 C6 H/ `: y- G/ q* m8 L2 ~
  2. #!/bin/sh
    % r4 b  w6 z% y3 J9 ?$ W
  3. export LAND="zh_CN.UTF-8"
    , T& f& H) @  i3 _  ]
  4. REPOS="$1": g7 \; W+ Y  Q- j+ A: y
  5. REV="$2"
    " c- \% k+ u* G5 w0 m+ D/ S
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( B+ {7 a; w$ f) G
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
: X5 k! x/ q; O* R
2 z5 x: |/ d1 r
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
+ j, {- x2 Z! q5 acp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit9 S+ ]/ H0 I) O* P9 I+ ]
8 q5 E3 P0 r. C# }
  1. REPOS="$1"
    . E7 o) S$ W6 ]+ ^3 C1 E
  2. REV="$2"
    / x1 I* d5 v* X( t" `7 C
  3. TXN_NAME="$3"
    $ x1 a- Z, A: w& p* G% ^
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ) Z) d2 P: `2 A
  5. MESSAGE="$(svnlook log $REPOS)"2 L, `/ C* X4 P' k0 e' ^
  6. SVN_PATH=/usr/bin/svn2 f! k* \- t: S" X7 Q0 ^4 f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo/ Q3 }6 C$ V2 P: u6 U
  8. mkdir -p /var/log/svnlog
    ' m* M$ @' C- v+ R4 z9 ^1 N
  9. touch /var/log/svnlog/ssyleo_update.log. R) s  ?5 M$ b9 |5 P
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    . ^3 I0 ]# j4 k' i+ |. o
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH5 {  X( J$ a2 D) F  `
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH& v; l0 Y) j5 U( Q% @% d, W
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    " Z( a5 `& G' i% {0 n8 x5 e* C) \
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
9 y: N# U& y, ?& l; i6 ~+ Q3 ]
+ M. w; G% }' Z# P5 a
  1. #!/bin/sh0 j' }. y4 t; i, B4 z
  2. #设定环境变量,如果没有设定可能会出现update报错
    4 J1 b7 {4 |6 Z# c4 j" W0 S
  3. export LANG=zh_CN.UTF-8* j3 Y8 a* c# f  \0 o
  4. REPOS="$1"+ l  x3 n# `  ]8 b( O  _
  5. REV="$2"" y$ u, @  s% _& b, }3 Q
  6. SVN_PATH=/usr/bin/svn) a: @# s& n- [
  7. WEB_PATH=/web/project
    / y0 n1 C. l2 G6 n( W  F' p8 s
  8. LOG_PATH=/tmp/svn_update.log
    ) ^3 t7 w$ J4 G  |+ G) q8 `
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : g3 f- p. J0 _; p. W2 c/ @
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ) v) j. m( ~; N/ `+ h8 z) F  k. f
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH1 K0 K; w& ]* i. K" i
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    2 v8 ^! c; l8 V3 V# X' _. x" K
  13. chown -R www:www $WEB_PATH
复制代码
; x! n2 J, O7 p6 I
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 11:25 , Processed in 0.064150 second(s), 19 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!