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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介0 T, G! l- ^+ L- s
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
. B7 R- d9 B: v& N3 ~7 R4 ]  O; g1.准备工作
+ L8 u0 `- H0 A  }9 M一台centos7 服务器 一台 客户端" E+ f3 _) {% y& v2 S# B7 _" ?
————————————————; q* N1 v8 }4 ^; P1 T, Y) ]5 W' Y
1、验证是否安装了SVN
1 D1 l8 _# D/ ~  ?0 H) l" q" d9 {% h" |# z& n. L! O% ~+ x
命令: # rpm -qa subversion; e$ b3 I3 `7 l. g: w# M
$ K. Z! M6 ?* m8 ~4 w
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
5 E: _. q! }# o! f( r2 z6 v3 V- l! F/ A5 G) f* m/ Q
否则,空白' T3 s- q1 f- P: J9 h5 C( v( c
4 o+ G3 \% f3 v# y+ A. `
2、安装SVN的命令( h& `2 J+ a0 ]0 `3 D# U" o
7 @/ |9 [: B5 ~: H1 F8 [$ c
# yum -y install subversion
0 j9 y0 r/ k6 Z/ |' `3 i1 ]  M0 f% q* o
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录. \2 z, r+ [2 B1 ^2 C! k
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
# Q( U, x& y1 L" A( C( S4 B2 |# K1 A, b9 q$ W
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
0 \, E  y8 \2 L# T2 d; M  Q9 Y# w* J
" X4 N' O8 P. O6 isvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)3 g. U9 ~# e' F/ u
- P! g8 @/ P& ^  f) i8 [3 U5 O

) Q: c& ~+ O5 T首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格, P7 @; d0 ]+ w( u, O

4 O: ]! I! Q5 B5 n+ b# password-db = passwd
' F$ H9 @9 M' {3 C
, g! s' y% w! C# authz-db = authz
. P: }; _. N; K7 i$ {( ]4 l1 `% N6 U8 M

* f6 ?7 d  K. s! ~然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效! [, D2 ^& A6 f8 |0 y% G7 P) B
3 p' F! V2 K$ d" T% Z
登录名=密码' X0 Q( P+ b$ b# j' D
  v7 R/ s. A. y0 x
user=123456
1 H  e- B) f. |1 v9 T; r
5 j, V& t4 {% m3 R+ p7 q5 Y5 D$ I1 i  R# \, c5 L- p: @& R8 |
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)5 n9 t& G" n7 Y+ b8 h2 T6 T0 N

$ E6 g2 h% M# f5 y# * = r
: {/ m) [/ A8 m% w$ i4 E9 o
( |- x4 [/ C8 D, n2 A[/]
% ]1 I; ]- R$ _) x4 B$ C
, p0 \  B8 D; f3 r" L% Kroot=rw
0 u, G3 K, t# u
4 P$ k% R6 |  \! \$ U这是用户的配置就完成了
8 g$ N0 k1 X$ W" n; o" w- f4 p7 z. b
接下来我们就需要开启svn svnserve -d -r /home/svn/blog # G+ K7 d& _" r& g; U5 ^; z% H
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
, {5 [! c  l$ H. g1 m, N2 F/ Y- O5 J  Q. A6 k  n0 j
使用此命令开启svn 根据自己设置的目录自行更改
7 P8 h  j0 c5 X) E7 V/ g7 o+ u) A2 d, I* l; g7 E" p, F$ ]
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了5 u% X; ]) v+ f/ g
/ @4 k4 q4 c& ]: e% `& x* G- F
' f% n- f  w8 g$ M& P( x
win下载svn工具: |3 r0 A3 }$ d) F3 k
7 |4 a1 V4 {; G6 M2 C' u
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了2 v/ ~6 U% c( q2 L4 q
8 E* X2 I1 \0 {) l2 I& {" w0 z: u
4 m/ F+ l+ t  z: ^, a7 U7 L
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
5 {: o, z" B3 t输入你的svn地址 地址请根据自己的设置自行更改" y1 S, L  Q7 R" y3 z1 {/ r; C3 e
. k% k5 O, ]1 b& l7 K  E% c; \+ Q
( k+ ]* v8 V* Y; E' U
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了) K+ F4 i: ]" ~8 P

+ [. S4 N* _# p3 [$ h& i2 \+ O6 I2 {! `9 E& U3 _* X
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)7 |0 _$ y. S7 h: m. e
4 a) v# P3 w7 ], P+ Z+ J

, x. `6 o+ p! @9 U9 H7 `
. k8 G$ [, P% m可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" b$ J& {/ n/ v8 o% @
( [6 I+ ~0 |* u% P这时我们保存在版本库的代码就会被同步到网站根目录. J) g/ ^( r, h- N2 ^
3 ~$ q4 @0 b5 ^! o( y$ o+ {

% W7 [( M( f3 l) }/ p, k- H
/ Q7 U! l' U8 [( a' }; q6 H
; V- u8 n+ y' \9 J! B+ t+ C# n- Q( V$ I3 i5 E* b4 |' y6 t+ }9 _+ z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录' j# P  b# ~9 v- e" Z
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
$ |) F. v8 ^- v0 i
1 q4 Q9 P2 s# D% S3 y
  1. REPOS="$1"
    7 H" [5 L9 A: x8 h" U# s; J8 D
  2. REV="$2"
    & u- r. l  t6 R) E
  3. TXN_NAME="$3"9 r8 f# I% z3 L% q. u5 `/ I+ o
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    0 A$ W' d' H6 U$ `6 [7 R8 f( C/ N
  5. MESSAGE="$(svnlook log $REPOS)"
    2 l% l* w$ g6 y# y- S( g: b
  6. SVN_PATH=/usr/bin/svn$ N( A6 \" x) g3 b4 ~5 i. e6 a# Y
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    4 u: W% k$ Z9 Z7 `
  8. mkdir -p /var/log/svnlog
    & }4 Q+ x# Y5 J! ?
  9. touch /var/log/svnlog/ssyleo_update.log
    5 C3 R! s) B/ R" x
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log' K9 _2 ~6 t' k9 a) z8 K8 c
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH% K8 [. ^) Q" y5 N
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    6 k8 t5 X- x" z  V* j3 E
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH$ O' w3 A5 |- k/ i
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
0 Q8 X# A6 ]6 q7 Y8 {( s: |
5 g3 M$ X6 Q# O. O3 j, F$ A
  1. #!/bin/sh
    ) |" p* @) _2 ~: g# m
  2. #设定环境变量,如果没有设定可能会出现update报错7 z0 G% g6 q9 ?8 d5 P
  3. export LANG=zh_CN.UTF-84 U! }% V- |) [
  4. REPOS="$1"+ ]9 Q2 P7 s2 H9 s0 l3 R) A6 K
  5. REV="$2"
    * b4 b8 E0 ~' `! b9 |8 W
  6. SVN_PATH=/usr/bin/svn; ?! v- `3 _; k, B
  7. WEB_PATH=/web/project6 `" @2 T+ X' C
  8. LOG_PATH=/tmp/svn_update.log6 }6 U8 [! S# P/ s% I' t; P5 q; J% y
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : p6 I3 a$ n' R' W
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ! u" \+ R1 i( ^. O1 k  g
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ! S: D4 ?1 {. G8 Q% U/ ?) A# P
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    8 n& }9 Z* k6 n" g
  13. chown -R www:www $WEB_PATH
复制代码

1 o2 m2 N- w3 }$ G7 N8 A
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh6 v/ S/ Z( l6 O/ s2 @- H3 d
export LAND="zh_CN.UTF-8"0 ~  ?1 ~3 M$ b( k" X; s
REPOS="$1"
4 u* d! D! v+ r: x7 j0 s' DREV="$2"
' R6 q7 \4 t3 I' }svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 ^9 b1 Z. p' {8 k; `- A" n, o
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) J* J( o: B: C8 p8 x7 Z5 Z

  1. 4 c) w  f$ J1 |4 i# [+ n$ Q
  2. #!/bin/sh  n6 d* S8 T6 E9 c  S; L4 S
  3. export LAND="zh_CN.UTF-8"3 |; g& ^. H8 p4 s+ a
  4. REPOS="$1"
    1 x; J5 |: u' \5 G5 C7 m1 Y0 i2 e9 f
  5. REV="$2"
    ( h/ Z3 W& e, j6 A/ h1 g
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    + _6 l+ Q  Z4 o0 E
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: I3 f; c2 X, {7 t0 s0 U. Q8 K' y1 m) K
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 11:45 , Processed in 0.058003 second(s), 18 queries .

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