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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
, G5 b6 ?6 u* ~+ N$ X- pSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)) L5 ~: n" c6 U& }4 v& T1 V9 b
1.准备工作
# V$ k# X5 @+ {7 c$ o. }) E一台centos7 服务器 一台 客户端
2 c4 _! E. V  D' ^& D5 c————————————————
$ _9 V9 p+ F* q: l3 y  y1、验证是否安装了SVN6 x6 O/ @  b7 k$ ^0 O

/ U5 D, C( E2 i* q: T/ ~命令: # rpm -qa subversion/ y  h9 D4 Z! O( X0 q: w6 c) D  o2 r
( p) F$ I2 \- j, n9 l9 A1 \
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_648 G3 [6 [, X) I0 b9 r) a9 }% }. W

/ Q" T3 T- F+ `6 o& B; u+ q否则,空白
9 R- E* k( f, P# c" h' i" ]: r) k5 m2 H% h! y( G! g8 L! O
2、安装SVN的命令
: X/ a0 ?4 @( s9 ~  m" G1 L
8 N" X; R: R- k& r5 w# yum -y install subversion5 t+ `( G0 o' h8 Y6 f- v9 g9 K

9 S9 F3 T. z4 r8 q9 }接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录' \5 X8 j7 _' y
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
" f% f& ]" L& \. v4 k2 {  V, Y! ]* G2 z* }+ M$ Y9 W' R
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置  N6 I0 I6 E# K& F2 I! b

! _& y0 j! X) M/ m. t1 G- r. l7 Usvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)' K7 r. }/ J  f# U% l8 T( S5 i" W8 M$ K% X

1 i; Z9 a& Q3 A- i, X; K/ ], N( c; u7 ]+ _7 x) F6 g
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
( D: l8 o6 V; i7 c0 x+ K4 G7 T  w* L8 f/ {$ t+ U5 f2 L* |
# password-db = passwd& p% ]! l5 x9 z+ v( s  f, v

2 a; V3 g) f3 M9 h+ W5 s5 }! u" q: h# authz-db = authz- s! z0 u3 M4 V8 i- t
9 b! E( M0 O2 K* q3 Z+ a) R6 ?

3 ~6 Z; j7 }5 F. {然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效, n- L1 }" U) e6 o* ^+ h
8 S% w' S0 z& A
登录名=密码2 v/ |. R# ?/ e2 n, W

4 t* V8 A4 {/ y- |+ H% w& P. X& ?user=1234565 Q8 k* t. G+ d1 M

# h* K' I* O0 e0 [
" s9 _$ B/ ^! O最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
8 j4 p8 {2 e* b3 Q) q# o0 `) f5 c$ _% |
# * = r
! r0 p/ S8 ]) T! h8 @2 |
8 @" o  A8 Y& D- D" O8 c$ h[/]
- H1 x: }5 v4 ?! R# [7 P4 s) o
# C/ c( c% }( qroot=rw
8 [6 p7 G1 A9 {, c1 v6 O/ w% n9 X6 ~$ W* |0 h) D( d
这是用户的配置就完成了! q: F' Y+ C! Z, p

5 f! l5 x7 C- N% Y3 Y( j接下来我们就需要开启svn svnserve -d -r /home/svn/blog % v' e: s! Q2 j1 l; m  J
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo' x8 W# j. h. s, r

, u4 c$ \. S  F5 J& i使用此命令开启svn 根据自己设置的目录自行更改$ z* g' j# y6 h, q

. k* M% d1 o* a7 H使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了0 U/ z$ ^% t2 F1 L

! ~7 z6 v5 K' v' Q8 `
& X8 d- O& O" B1 x2 b* h' owin下载svn工具* R  i4 V6 ^  s. W, P6 T
1 F, \8 p  d( O' M) n1 p0 H2 C2 u
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了$ |$ t3 a8 t8 m7 U( N

0 H: P( U( w, A2 h3 k, D) |* o% _6 b, o7 m: J
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
4 [* w! w! G  k+ R2 Q: t0 [; K输入你的svn地址 地址请根据自己的设置自行更改4 c2 N6 ]7 s4 G2 o" q0 Y6 b
6 I2 {. U( E4 z& z7 S
1 F! E$ C4 {0 g1 P6 I# R
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
0 i1 X9 W" c# a$ ~" I/ z6 @! A4 ~6 L) E

1 ]! H. W6 x0 O/ l$ p. T(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
/ ^% N/ t/ A9 r. ]1 m5 g( o! u! ^6 M+ D
2 f8 Z* t3 S5 y

0 F7 a+ R5 j  \) l可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
7 \, [. D/ h2 u3 U: G5 s& U- q% @% `" \( z
这时我们保存在版本库的代码就会被同步到网站根目录9 ^/ i( d8 t; H8 a

4 C" X! Q/ c) W7 y/ I* O  n* b$ S7 }

2 u4 h: W0 s+ e* }0 Q) y0 j" \8 m
0 {% s) u5 A9 ~$ M: ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
' c4 a! I. y4 h8 L6 X6 m6 N, pcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit; z+ b8 u* C! y% t7 _# L

0 M" ^$ j  G+ a& t4 y% N' S
  1. REPOS="$1"
    & h9 t9 y! K& A
  2. REV="$2"
    & s9 b: Q  J1 H. V! V
  3. TXN_NAME="$3"
      n9 X& J. l8 \5 ^
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    - n* m7 J5 _3 _, x% j+ R
  5. MESSAGE="$(svnlook log $REPOS)"  A+ L1 `' c" Y
  6. SVN_PATH=/usr/bin/svn
    0 M3 V# ?/ q  z* X( t: ]1 n
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    ) C/ i) Z9 s+ I- z/ _6 O
  8. mkdir -p /var/log/svnlog( j  P3 I% P, g* \
  9. touch /var/log/svnlog/ssyleo_update.log
    - N# w1 }% b! Q  S- ?2 n3 d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    * H$ y- \) K# Q
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH5 v$ ], ^& v% N7 o4 }
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    - \6 D8 E, t( _+ M
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    6 V. g) h/ Y5 x/ {1 W
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
* n) A3 A0 ?5 M% {

( P( o. [  d; L
  1. #!/bin/sh
    # Y/ z7 f8 e0 I& O. D( {
  2. #设定环境变量,如果没有设定可能会出现update报错5 D. R4 y9 p3 U5 f1 q) A* B
  3. export LANG=zh_CN.UTF-82 X" F. S* a- A* ?9 c% d0 r
  4. REPOS="$1"
    $ T* c& C( q( z, \5 b6 s
  5. REV="$2"
    8 f  e! |* r0 V2 X4 `; r8 O9 T$ G7 A
  6. SVN_PATH=/usr/bin/svn
    - m' ]/ t' ~: T3 F+ b- z- [( T/ O
  7. WEB_PATH=/web/project% \& z6 y4 Y7 v  c7 V; C! r1 r
  8. LOG_PATH=/tmp/svn_update.log
    ) b9 S, M3 ]' g% o% F: X# W
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache* n: A8 m+ p4 z) P3 N# t0 t7 d
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* D# i: X0 P! f  ^" N( f
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH( i9 V, n4 ]* @% h4 M& o0 n
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * P8 N0 |4 W! G9 ]& |" |) b
  13. chown -R www:www $WEB_PATH
复制代码
7 N( V2 _2 ^: u
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
; A$ q! t/ _5 Y+ Mexport LAND="zh_CN.UTF-8"
  @5 x( Z9 h" M9 _REPOS="$1"
$ S' z7 S* S1 N2 A* c7 R7 jREV="$2"$ `% M8 L% x3 J# f+ b# q
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
7 l- X7 x: k7 m+ ^" c) e9 w4 csvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
4 O- K7 r7 g) N$ e2 q) e
  1. & @  T) U3 G* @2 S
  2. #!/bin/sh! ^* D8 G) O$ {$ G& Q- A/ c
  3. export LAND="zh_CN.UTF-8"9 a* `4 x& E( T' C, D4 ^
  4. REPOS="$1"4 z/ c$ |9 \, k, Z4 R' K" c
  5. REV="$2"/ Z& U* X% e: O8 [7 X
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache/ b1 X& y4 {" c/ d( Q: X. Z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

2 o! A1 C9 z5 N' u  T1 F1 T8 e' @  E8 q9 P* ~4 J
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 16:44 , Processed in 0.063454 second(s), 18 queries .

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