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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介; @- Q4 X+ l! x3 M4 c6 T
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
5 N: C0 @8 v# Q+ F8 I: q' D1.准备工作4 _& @' U2 T3 C
一台centos7 服务器 一台 客户端
( s6 Y) ~7 h3 D' a' I————————————————3 Z7 H; n1 n0 @1 ]
1、验证是否安装了SVN, S! S+ N2 E7 l6 g6 l$ K
- A! V; V0 e( X+ E
命令: # rpm -qa subversion! u4 N% @# o, A4 N9 g4 K  I

) U* d$ |$ [* D, [6 V$ K$ X如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
* s! c5 T. Z# k! O7 f( H( M: m& P; \5 v, Z. x
否则,空白/ I: l: d' z1 b0 k' @2 K0 l+ [
! G1 n, I0 N. V( _! }
2、安装SVN的命令+ L, y& b6 A% s$ d' _( ?7 ~

9 I8 X1 I- f5 |) S; o# yum -y install subversion
6 ?8 V# g* P$ [; j8 W) f/ B9 `2 @  V. J. m( F# ]
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
/ R- ~/ N$ J& @5 e创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了1 R+ l. R, l0 p( m' Z

$ w5 I2 w# K* C  ]6 f2 Y然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置3 J& s1 M$ w3 R  t3 L

9 G, b2 Q/ f( A1 t1 A' Asvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)7 M( J6 c. h/ O  S9 K, G4 @
- g/ T3 I) ~& L1 |

! ]4 H  t/ V, L" n! A+ Z7 c首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格* I" Q( L( G8 Z2 B6 ?$ g; F

$ R- F& D1 v: C+ u2 u# password-db = passwd
! r5 k- s* d. P5 e+ C! Y% N+ |# J! I; }. t) S1 Z; x( ^7 \' o
# authz-db = authz" {0 n. j( C1 [4 p$ [

# s: q2 L& a$ {; S! b& f/ r3 N2 h+ A* K) K2 t; L' ]6 `) A
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
! E. Q0 @# U, M" U- G
2 E' n; [$ b5 |5 V登录名=密码  g5 r) V! j& R; u% \, ]; I
  |3 D0 y4 o7 u& d
user=1234567 L( t' c* l9 _. j

5 P) h' E2 j1 e! G
5 a& z0 F. u7 W) O( P! s最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
2 l# }4 @; |' K/ |. s# Q6 `' n: R& u4 b
# * = r
( Y) Z$ @& c  B. u% c) J% P
% _/ }0 e5 j. D* j! R, U+ w[/]
1 S6 r* q+ u1 L& j3 \, H3 m
; i0 b5 N, m; u+ v; J# y  froot=rw; c# |, b( J" \1 e1 t, k3 Q

( F* \( W& x5 p( D& y9 \, K这是用户的配置就完成了
4 g, s0 d% D- C& X! J2 k' }0 A- N
6 s0 ^4 L- B7 H+ N8 x6 K接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 G/ H0 X. E4 ?) psvnserve -d --listen-prot 端口 -r /data/svn/ssyleo+ f5 y/ L! [: ]) P$ Y5 m6 a' K, {
% Z% V  y9 j' B- k( {& p* b
使用此命令开启svn 根据自己设置的目录自行更改
/ E3 T5 q9 [9 O+ o/ A2 X4 S; E! W/ K- O5 O" v, I& ^
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
" T3 N0 K; `! r4 S# R
. A7 z% d$ y; j9 y1 f. `% v* p7 M& @5 H4 W2 d
win下载svn工具1 u9 N  n5 O- [( d
$ V/ A& v) x, r  ?5 B$ L
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了0 ^) M* B: p6 v6 c

5 ]* L4 N& Q/ ^' @. y8 ~1 Z8 [- p- H
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码1 V$ Q" k4 o. x% H
输入你的svn地址 地址请根据自己的设置自行更改
; {* O" b7 I8 \% W" B; W2 l0 e! g( r0 }
8 J5 d! B3 {! t
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了8 j! S& m. x, Z! x( e

3 f# v% O& R: N% T4 F. e# \. {& W7 Z; h' r5 R
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)- t; P  ?, B, H3 u  b6 m3 J

: R) d: V0 j6 d- }7 Q) h. ^5 E1 y( p$ n

& J- u! _" |; o2 t可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; h# ^- @- U$ @
3 e6 C  C  H$ B) @6 u
这时我们保存在版本库的代码就会被同步到网站根目录$ C- s* J3 k% I
* _" h- E, Z' r3 q% c
" ]3 |+ w+ @' p8 q* O/ V& @5 c

" a) ?  |; v( x' m" V
) v7 b5 [; k5 X6 _7 L4 z8 q" P
& [6 L  \6 f8 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
. r% ~0 b" W5 ?/ _& q: Rcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
2 f0 H8 V' g+ E) a
: P) g; i4 _! J7 d( i7 n( ]& Q
  1. REPOS="$1"
    ; a! d$ K$ H' a2 ^# |. A
  2. REV="$2"
    ) c1 K* Z, E7 \% O# a9 c. r
  3. TXN_NAME="$3", a3 v) x' U. t# g  I4 `7 c& x# g
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    4 f) c! L/ n6 e) F1 @3 ^
  5. MESSAGE="$(svnlook log $REPOS)"
    7 z1 u2 N! D  d
  6. SVN_PATH=/usr/bin/svn5 W, h! j# P2 M1 t- I; ~
  7. WEB_PATH=/usr/share/nginx/html/ssyleo( X+ \4 B; k& C  f4 S  x# s
  8. mkdir -p /var/log/svnlog2 N0 a9 T  E, T
  9. touch /var/log/svnlog/ssyleo_update.log
    1 j1 Z- M$ L) s1 d. c
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    * X! o/ C$ w7 q
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH+ o' @' X9 r+ {' U2 W! ?
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH, q( ?4 @9 P# Q9 R: C4 t
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    2 x4 D; b4 A8 l9 ~% `
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
4 o" v8 U( p# B' Q
6 f6 L% O4 B" _* A
  1. #!/bin/sh/ o8 g2 a2 O, ?5 I6 g
  2. #设定环境变量,如果没有设定可能会出现update报错
    " v& _7 Y& ]! @: S9 o# N
  3. export LANG=zh_CN.UTF-8% J" g# z/ ?- y/ A; s  a# g
  4. REPOS="$1"3 H6 i1 V1 {2 b+ S5 i2 p
  5. REV="$2"' y: [' O) N" A# S+ x, F+ ~
  6. SVN_PATH=/usr/bin/svn% U+ E8 X- p1 k  M2 Y
  7. WEB_PATH=/web/project
    " J" M+ j  F$ W+ [% G2 ]. v
  8. LOG_PATH=/tmp/svn_update.log, l4 z1 Z, e+ T# j7 h1 q2 f7 O
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    , k8 Q9 d( X% p+ G2 G0 j
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    $ X, r$ x2 ]7 Z; I0 a9 k
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    , A9 g/ ?6 k1 @9 O* V
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ! Z! `# T# z# V, L3 \  P
  13. chown -R www:www $WEB_PATH
复制代码
( F' O0 K4 h$ p" e$ h
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
3 m/ A0 F2 \: l3 h2 Y! Q8 dexport LAND="zh_CN.UTF-8"6 ?+ h5 w9 ], R" |/ ]) ?
REPOS="$1"
! F4 L$ s" G' ]( eREV="$2"
7 t! k8 U2 Z4 j+ @. d% csvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
0 t) z' u3 H. ]5 _+ w) M% \svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache' o7 ^6 F2 w4 X6 }

  1. - Q# U; d% h* J4 Q( {& @4 b) Q
  2. #!/bin/sh: t" q& G# J5 d4 [5 Z7 i
  3. export LAND="zh_CN.UTF-8"
    0 q+ R9 h# I" a9 E7 J3 J
  4. REPOS="$1"
    , g* V1 h8 V3 u; }' ~8 C
  5. REV="$2"
      S8 p* S6 r  U' ]5 y% b
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache& s* S$ B4 e3 S$ J6 s* ^6 x
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

2 m- i! s8 `; \7 }  p" t" g. |, j) m# J& b1 c( \( ?
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 11:48 , Processed in 0.063643 second(s), 19 queries .

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