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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介1 Y% ]  H. J# D; \6 o4 U
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
% H" Q/ A0 k9 p- y' z1.准备工作
7 H. z" J$ l; r0 j8 r一台centos7 服务器 一台 客户端
* W. f5 P& f' x  M0 |————————————————
3 O: r3 g9 r/ x% G1、验证是否安装了SVN
7 z( ]/ f% j# S- [) r2 L/ F- a0 M+ }" F* X
命令: # rpm -qa subversion
2 t4 y8 d6 |' R5 U' E2 y+ B- M- B1 P) i' Y% B2 K% b" k' b6 \
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
$ w+ f) ?% }" E% X) q) t) b
$ o. W5 @/ s* o4 K  H( j* |否则,空白
0 L- p& \1 J  [" q. B/ ^1 u1 M+ r
$ `, p( H& M8 W' U; h& U2、安装SVN的命令
; }7 ]7 X; m, f  r) m! k8 [5 m4 E) z' ^( d
# yum -y install subversion5 R" O5 E; U3 g; H5 Z
: ?; A  W" I" V
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
) e6 Y4 Y- o7 s) `# p5 J, c创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
. l7 X! c4 ?4 r  L: d6 _, U1 N
* q# @  D, W" i# F; E) l然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置4 T7 s7 A0 K1 S$ M3 B" u0 J1 V
5 m7 k0 {. H+ \9 x, l. S& J
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)- [* e$ K6 y! F

  M7 V" j1 B. F( i. Q9 |8 s1 ], _0 E0 G- h4 {8 O0 V! v8 ?
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
) D! u+ D6 g7 _6 b
  H+ U4 c  |0 Y/ c$ C# password-db = passwd
. o8 ]8 U0 m. z9 y/ {; p5 I+ }2 n/ K# I1 g8 y
# authz-db = authz' ^/ `  s+ w% o- N1 O

9 p3 X" X- |+ C/ a
3 q2 U! Q2 W  a; X; V! T# @& C9 b. ~然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效1 m' S6 J# g- L  s/ F7 i
& f3 m* _; I( l; S; `6 y
登录名=密码3 S; H1 f. W; N3 C

3 h6 ~" j/ @3 _4 _user=123456
  H( T1 Q" b, ~% r% u" E! z" m& J2 y3 {; l

/ E# M1 F, F9 l" j# o最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限); n- M( J6 d% M4 r% o6 |

. B4 a' H* L$ p- n  M% M4 M; k* N$ d# * = r
% V: T$ S7 w' R; ~4 S$ ~
  \% c6 h1 `* B  W/ n2 E; R* }[/]
2 S, {  R0 k& f( D4 U
' U9 O( _* }) Z) z1 W' O- k: eroot=rw
) W2 C' H0 z' {6 H0 u! H2 D# r4 o
这是用户的配置就完成了
2 w* o! K5 X4 P6 B9 p1 L
% Q6 U) j" G5 |3 W" t接下来我们就需要开启svn svnserve -d -r /home/svn/blog ) d2 C7 p7 b6 f9 k4 p' A+ T
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
3 d; D) L; `+ B8 {5 a" {( M. ]+ G4 c% I* [# V/ ]# P
使用此命令开启svn 根据自己设置的目录自行更改8 |: k  ^9 @5 X* N
3 t/ `5 ~. O8 Z5 o9 g
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了! c2 D8 K$ A) E0 y) h

. I, m" Q. O% F; o+ N1 }' y% e' P7 X# h
win下载svn工具
! M; p; f8 c6 z3 ?7 n) n9 V1 G* P! ]3 B( l# K) }
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
5 Y: l- y0 p6 [1 u
1 v' ^. i; s5 K6 U8 g' `) \* }# j" d3 {. s4 Q2 w6 N
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码" }- s1 ]8 a' _; r% t+ Q/ l; Y
输入你的svn地址 地址请根据自己的设置自行更改$ o8 x% E6 X" Q) W9 V! e6 A

! t; q- t$ @7 c) W1 c( z: d! G+ N* U7 Y- [' ]. r7 H
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了" R& y( @- |% \; K* {# d; h! Q
: L, J9 f, M& a# n
$ o. t" E7 z8 I% X6 U) d
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
: y5 f5 a4 Q# j! D/ w  t3 Y$ E2 Z" F5 w6 w9 k2 K# x- s# q4 ?, }0 E
: J* d* M' ?* _

3 Y/ ]* B2 @% L! d+ T; `1 H可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存) S8 E3 M% `' M; s$ e& K

& `& q+ c" p' C$ g8 s这时我们保存在版本库的代码就会被同步到网站根目录6 I+ V. |: X" o+ E& T, S

5 O7 x; V, F. f& R; }9 T% F8 J& ?/ a5 R9 C

# U% I* _2 N8 n: S6 R& _/ p7 N, v8 x- Z

5 M. W& U) M2 @) B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
7 F- f8 f. u# Ecp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
: _3 I+ \) u+ G7 A4 l$ m9 {$ `1 y& @; T" M. U8 ^9 {
  1. REPOS="$1"0 i% j6 K4 x% z1 K2 M" ]0 V4 V7 H
  2. REV="$2"! ]! r8 P$ B' c8 A3 _; Z$ g
  3. TXN_NAME="$3"3 e$ q# n1 _9 F0 M
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    $ `! i  i/ L  q" N! ?2 G
  5. MESSAGE="$(svnlook log $REPOS)"3 U! j/ Z9 N0 a0 m
  6. SVN_PATH=/usr/bin/svn% `8 G# N9 b+ `" B% i
  7. WEB_PATH=/usr/share/nginx/html/ssyleo8 a5 j* ^6 s1 I: W
  8. mkdir -p /var/log/svnlog/ f& i: X2 d$ b
  9. touch /var/log/svnlog/ssyleo_update.log
    4 p! T. x5 `8 H1 }) u
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    + z' }' {% b: g$ I
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 I: u; K* h( ]( l+ x
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    8 v% G: `5 d) v) c
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH& \! \9 f7 ?/ e! V! c
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
7 w! w- I" R$ l2 `

4 ]; _! O) J$ Z( G# y
  1. #!/bin/sh0 d) H5 a6 L7 w" m9 h
  2. #设定环境变量,如果没有设定可能会出现update报错7 ?; p/ {; D0 j3 Q, j% E/ U3 ?, x
  3. export LANG=zh_CN.UTF-8/ D$ k) t# W( r& j5 I
  4. REPOS="$1"7 }9 ~3 \* X+ R& `' G9 o
  5. REV="$2"6 n0 }; L( w( ~( a- i8 T
  6. SVN_PATH=/usr/bin/svn
    ! P) O; m9 [( J8 y
  7. WEB_PATH=/web/project
    ( ^3 t8 `5 x8 y5 n. v
  8. LOG_PATH=/tmp/svn_update.log) T6 [. K* \5 W* G: p
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    6 ~2 X3 F- P9 f% M8 z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    7 W" q2 P6 C* P2 n
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ; P" k, o; Y. b4 F! j* `( q0 a
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    4 e& u" \# E# w2 O7 _
  13. chown -R www:www $WEB_PATH
复制代码
# I; y* ]) X4 q' i0 W" x
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh, u" d$ j& ]2 d$ o
export LAND="zh_CN.UTF-8"
4 {. X6 H! j  @7 x' ^/ X7 }: r- X1 yREPOS="$1"" A  }( P' t  X5 W3 c$ q- w8 S! K) G
REV="$2"2 P* Y0 B, b# G) {
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ |: f" h8 ]1 _7 m" L* }+ U
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
  o& L1 E+ Y7 j' c# R1 }

  1. 5 k1 E5 \+ ~- k% P) N
  2. #!/bin/sh
    8 H  p" w' p& D4 i* ^2 s
  3. export LAND="zh_CN.UTF-8"0 w/ q8 t; q- S% b" e! A
  4. REPOS="$1"1 S+ |7 C" a7 L. {
  5. REV="$2"
    # b+ |3 @/ e1 G# ~5 h
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; J  e$ |( t% x6 a/ _/ K/ n; i" R9 n) ^
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

, l% S$ q9 q/ q) H' T% y5 z! M5 N1 J2 |+ C
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 13:34 , Processed in 0.053264 second(s), 19 queries .

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