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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
1 i+ G& ]/ I, K1 c: `( @; B6 ?SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
) h+ o5 }' [$ q% i2 h5 [. d3 ]1.准备工作4 i/ m: g0 E! j% C; T( m' i, B3 ]
一台centos7 服务器 一台 客户端
; P2 p  e) ]5 P2 z————————————————
) ^2 Y- H- Z0 R4 l, c3 E$ G1、验证是否安装了SVN; }, e# T0 `) H, k2 ?' T

" r5 I( L1 {& ^% m5 q! ?命令: # rpm -qa subversion
2 z  H: J" m, h/ Q+ b8 h/ i/ t! [; I, C4 J& R2 X
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
8 l  k2 h0 V1 @- h" a
  h8 X$ X7 S3 ]- n% \$ l否则,空白
  s3 I& o- U  o1 F  J+ q
, k2 }- j% b: V( A: @2、安装SVN的命令& o, T8 W9 Z+ ], y: x) W
/ \: K7 T7 Y  D
# yum -y install subversion2 h0 n! v/ t3 c/ j2 p

/ W4 x; C. W$ R) H接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
6 C9 @3 n1 }/ a, p  r( o' I创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
% {& B; ~1 \  p1 J  i
8 R  n4 C; \& @& G0 o0 Q0 {5 U' X然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
4 [% X. X7 A7 o
- r7 Y2 ~4 U! Ksvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
, H- r7 d" }  k/ `& K3 O3 m) _
2 C7 p& n- D1 L  y. R) [9 H# z' x
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
+ K" |  v" J! \, V6 I
8 W* A3 l; U. S4 Z# password-db = passwd/ L. z, a4 U0 B* ^. M2 Y
8 ~5 P7 Q* W2 ^) J  R5 M
# authz-db = authz, N# B5 I$ O. [8 G6 H
, s" R- _3 a8 k

* h$ M1 j1 s$ o9 K+ ^: a然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
) E/ s* m# T$ y9 b; T6 \9 ~+ r9 l9 b" D
登录名=密码
! s$ b. b# B8 ^. y8 T" w2 n, f* ?  q! e( w2 C) K
user=123456
2 M: E8 i) o2 B4 g- ]  l8 y
5 Y! Q2 }) M) r: o2 }. _5 y1 }0 g$ G/ M4 H9 P( R
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
% J3 i# x- [6 c, o9 |
# W5 q0 t5 _% P# Z9 t( u( ]# * = r
6 \4 W6 A- O5 n8 P- X  ~
9 B& i" J& [* D) _[/]7 R, T9 q: F+ p9 }" o9 i! t5 E

0 y5 m3 B; T2 ]8 Yroot=rw( h$ n& I* [' J
+ _4 \% ^$ ^% D) X: F& ~, Q7 j
这是用户的配置就完成了8 S8 S* b9 m# j+ G* l" c" B

, U: P$ x4 G; m$ H; d接下来我们就需要开启svn svnserve -d -r /home/svn/blog # W+ \0 D5 M- k8 m3 C. Y, C
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
( f# E6 F, Q2 B& P
% \, \1 n' f& z5 F  E2 ~! J使用此命令开启svn 根据自己设置的目录自行更改' u% x; v7 G9 e6 J8 Y) G
4 l7 p  {$ a! c
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' Z7 |" ?& {  m) w9 G
  m9 p8 `. ~; v* x* E+ }. R- [

; U! I+ }" f+ N1 l" e/ v" I. wwin下载svn工具
: p6 S0 n  A' c9 Z" }
# A% W: E+ I# j7 x  K接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了9 J; ]2 L) e; H  |

, h  y% v1 g2 K4 k2 v2 x
6 _; V$ Y7 d! R: p. \# y2 e' g重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码: ?# H& I( A' A$ ]3 }
输入你的svn地址 地址请根据自己的设置自行更改+ E) ^4 x& x6 W0 e9 m" b+ f+ A

* b( W0 X6 D3 @/ K! g( W7 x9 @: s4 B! M$ m0 M: t0 P
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了$ O4 `) W! `& g& m; j+ ^
& I% i) z4 Z- B
# I% P1 I1 C/ L1 |& N
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
, D9 z, S$ X, A6 U# q8 W& z  L. R# d; d2 T- ?$ |

' u" b. J2 |$ I: Y! E
8 ]" h5 e- ^2 P5 Z可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
( j6 r6 `/ L9 j8 O/ F" `: A4 \# Y% d2 ?! k9 t' m0 V" Y$ U
这时我们保存在版本库的代码就会被同步到网站根目录
7 E3 Q4 X; ^" J2 J# {, c4 ?0 O; D/ U

3 D( t, D3 g' @, }3 t  ~
; r( [; `2 L1 H$ G
. O3 y+ h' z& ]3 _( e
4 Z, v2 U+ f9 A2 y2 Q- r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
, ^9 U7 n2 z' S# A7 Kcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit8 F4 I8 \; E. }" n' R

' d# e. V8 o, ]& A0 b
  1. REPOS="$1"
    + b$ K8 O) v, R
  2. REV="$2"/ S2 o! y! E+ k' l9 |+ @
  3. TXN_NAME="$3"2 |+ t6 H3 k) [0 n8 |" r; Z0 z
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    , v3 G; z- R: Q" V8 i
  5. MESSAGE="$(svnlook log $REPOS)"3 b8 F3 j% t8 O" }
  6. SVN_PATH=/usr/bin/svn
    6 U7 E- m$ {5 ?$ Q2 v% n
  7. WEB_PATH=/usr/share/nginx/html/ssyleo; z( W( W5 H9 g% x& C( {) f
  8. mkdir -p /var/log/svnlog
    / ?. b0 y+ M3 R" F. a( m, N
  9. touch /var/log/svnlog/ssyleo_update.log" x9 \8 V6 u7 Q1 |4 Y* m" A8 f
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    # Q3 R2 A9 z' c" x
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH' P6 R& K, r  Q" ^3 I
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH8 G. t9 m- T3 a" a  v* W% `2 y2 @4 v9 T
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH: `! S- I/ L& L' j. v4 W
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
+ j2 Y( h1 S- u0 X3 q. a
" z! d; r+ r8 I
  1. #!/bin/sh7 y8 b1 g+ `) z" g) h  }# E# L
  2. #设定环境变量,如果没有设定可能会出现update报错5 ^3 C0 V1 ^2 r) l/ I! @
  3. export LANG=zh_CN.UTF-8; w( Y' U9 z' T9 T& u, W$ W( w
  4. REPOS="$1") q3 T  E8 b) N+ b7 n' o& S
  5. REV="$2"8 P4 ]% t# X7 N+ R/ p
  6. SVN_PATH=/usr/bin/svn
    + D$ X/ a5 w6 e" `0 M2 F/ R" ]
  7. WEB_PATH=/web/project9 J9 j2 O" k6 @/ @
  8. LOG_PATH=/tmp/svn_update.log
    6 |/ r9 `4 i  m/ ?7 ~( J5 i
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    / U3 y! h( T  Y3 h& U
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH1 K# Q3 t0 j8 @7 a/ Q+ s7 R. Z
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    3 Z' S2 x: ~$ m/ n( c
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    2 T3 S2 n' U& Y! p
  13. chown -R www:www $WEB_PATH
复制代码
# p: o3 b  R' x7 m8 e, T6 L
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
: i" @0 ?" @4 fexport LAND="zh_CN.UTF-8"
6 [# n4 z* ], H, ^6 D9 \; s& [REPOS="$1"* y6 Q6 t* c. v5 M, B4 R
REV="$2"
/ Q% N' S. m+ P+ l" h/ |8 o* V, Wsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* J. a5 X5 C, Ksvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" z! s( N7 E2 a* c  ~7 t7 _2 E6 m

  1. 1 x5 J* o6 X4 K! g+ x. ^! R
  2. #!/bin/sh! E+ P! _, c0 n' m8 D& @, N! P
  3. export LAND="zh_CN.UTF-8"8 z* c- P; e7 X
  4. REPOS="$1"
    % ?% V+ o' ?( S1 j# t
  5. REV="$2": s4 ]. Z! S5 W! c* a$ i, J  W
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    8 I9 y* E3 v0 L4 l( G5 H
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

4 f' y- g5 W" g1 t5 j3 e
1 ?% D( O% l- M' J  ^
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:47 , Processed in 0.058235 second(s), 19 queries .

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