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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
1 t& M2 k& l; \; m1 y( w9 k/ ]4 [SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
% f, _  x- U. k$ j% k/ b) z1.准备工作9 v0 U+ I9 O5 t; M
一台centos7 服务器 一台 客户端
- g7 ?4 P0 Z% x————————————————
& B# U0 R* F3 m8 i1 z7 C* w5 V1、验证是否安装了SVN$ W& J. w" y/ f4 U

5 U' N4 \9 E# s1 |命令: # rpm -qa subversion
3 H& A4 y  b1 r3 W/ f7 `+ h" U0 w: }) X$ V: q- d6 y( I  b
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
( `" x0 L" _7 Z1 U; u1 |
* j' I0 j! m. s$ T& i2 h. ]) g否则,空白
3 I1 G1 M5 ]5 y' B. F+ K  ?+ i+ F! S1 a, G- o4 N) `1 E( m
2、安装SVN的命令
; w9 ~; i$ v( M5 o0 N5 z: @: d, ?+ J
# yum -y install subversion5 {+ A2 S8 A, z2 M9 z0 R

1 a: d6 C  w: Y$ p2 [( m5 u4 }& m接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
' S$ M  y. `! {5 g+ G创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
. o' s& n+ j% x: x* k
- l: b. C: ^9 a; ^8 q  w% H然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
5 \  a. i( I! x$ A+ y7 w6 U3 d0 d" l9 c+ _" G! W7 b0 u
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)/ J$ j7 i, Q2 K
3 h* u- W5 N! O0 _' a
+ q3 ^5 y1 x, I+ B2 K% |  x0 _% @
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格  k+ B/ C3 r0 a3 A
0 t1 I* K6 S7 Z% h/ q
# password-db = passwd
+ ]2 X- S. x* q
9 W! H7 K4 v0 C1 _& z# authz-db = authz1 ^- l, y; C* f  @( o4 s" O

* Q2 z# N- j: r! q* K6 P/ f& E0 K0 N5 I2 x' Z9 ~
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效* }" a# ^& M, P' S5 e. P  t* D

! [8 _5 K* J4 w0 g# m. n6 ^登录名=密码
! A; Q7 C. z5 Q& _' d* ~; e
4 b% n- A) {+ b5 Huser=1234569 i" `3 }6 d1 |- j6 S, B
1 E6 {) I2 S$ g7 ?. w: N  d! Z  }

/ o; z: N. m4 S3 @! Y  j最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)+ O( D2 e) |6 ~, Q2 N# ]$ I
  N2 {( D# A9 r; S  N' g
# * = r
: A! A9 k2 w4 y5 c) P3 m, E& H: z8 k+ o6 h% R  x
[/]' |4 X& \* R+ G8 d" z
3 A* v6 D4 ?3 r0 r
root=rw5 J4 n) ]. g# V; z5 b- L7 T

$ _7 W* j( T0 Q$ L  |这是用户的配置就完成了
+ w. ~( L& f9 ^5 t9 y9 M( G7 _4 W/ }1 ?3 d6 ], b
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 2 [* _, r& s% M" @$ v5 C
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
9 p& F6 r) g+ B1 Q0 s* t3 H  u
* G! m; ~: \6 f: W7 h使用此命令开启svn 根据自己设置的目录自行更改, T6 K4 b& c& E; }% }' w

6 t  B' m1 i5 O4 q使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了5 I8 H* o0 p6 o
. D. K4 J8 l2 |+ {' Q* O

% b2 p4 r+ t% \3 Kwin下载svn工具$ G  k9 A- J2 H6 y3 K# a& O

/ d0 \! F  E# G) y0 k接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了+ ~6 a1 I/ d, V& P6 `# M! }
$ C7 W( _+ f3 v
$ a1 T; _% k6 O3 R$ O. H9 |
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码: i  l3 }: @6 }
输入你的svn地址 地址请根据自己的设置自行更改* P+ m% P7 V7 G; X8 x: o

$ S4 [  `( U) u. c+ ?- Q
+ s6 @# u. {( t& H: M" H然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
* v8 n! L/ K4 W  K
7 W/ x! E# I1 ~; d- o3 q0 w1 z* A1 Y5 t. K$ U( L
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)9 _# C, }4 c4 C, X

4 D  g5 }/ v8 A' j+ g0 E2 e0 G) r% ^2 D6 c& G8 W7 P6 v( _1 d# }( @

& T/ n0 P, y' S/ [" f可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存7 I5 \) _% a6 x% o$ M7 A

$ q# H1 W3 A" f/ b- t' e这时我们保存在版本库的代码就会被同步到网站根目录( c1 y& A" y6 O4 O+ o7 k" t$ h) G
$ U# X: W: w3 C) {7 h

: k" r3 H1 b; [8 z7 g! _. n2 t& K# l* {) }1 j5 n4 d

6 c# y& J7 W7 q" x
  w6 e2 k: N; V4 |1 e' d0 ?0 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
+ \) S' @% Y6 p  b( u* Q1 Wcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit2 f% v: P* F0 @
: w& ?" A9 i  s8 }# G
  1. REPOS="$1"8 ?% N0 c  t: ^
  2. REV="$2"
    ( Q! C/ C* m, M, H
  3. TXN_NAME="$3"1 v7 W( Z' i& V9 ?7 T9 z9 ?+ F
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ( M9 \% x8 K; M( b
  5. MESSAGE="$(svnlook log $REPOS)"
    - b! Z7 Q, ^  S# C) _! j5 h: s- i
  6. SVN_PATH=/usr/bin/svn" g% v2 ?) B: q) j2 t
  7. WEB_PATH=/usr/share/nginx/html/ssyleo5 S9 v$ l  K+ L( I
  8. mkdir -p /var/log/svnlog- v0 r# x6 n! ]  H6 s$ i9 h5 ?0 F
  9. touch /var/log/svnlog/ssyleo_update.log
    6 h8 u1 }  c7 O) ^
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    : p# J2 u. o6 S. c+ G& a" e
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    - c5 T8 m" e2 ^
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH0 q1 l2 x9 I( G4 d( g0 R* E
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH- \5 ~2 m: ~. L' q+ E
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

. b: C7 p) ~, l9 E  C7 o0 n. v% U0 _. o
  1. #!/bin/sh- _' s0 v2 p5 _( q
  2. #设定环境变量,如果没有设定可能会出现update报错
    0 u' D/ M; E" v0 W* H) x
  3. export LANG=zh_CN.UTF-8" F8 ?# Y$ ?4 b1 _/ b# O" r
  4. REPOS="$1"0 T5 U0 x  b6 G% L1 k
  5. REV="$2"
      r& _: ~% M1 m+ p
  6. SVN_PATH=/usr/bin/svn
    $ R3 s# o1 \: x4 }/ z! t! n
  7. WEB_PATH=/web/project
    8 D+ }3 Z( Q( l0 X- F, W6 W
  8. LOG_PATH=/tmp/svn_update.log* p- f2 Q( W3 E6 f) F( q; ~
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache4 w1 o' x# n) ^1 s
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    $ s$ H: p# j( h. n" \" N
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH% z( m' _8 J; ~8 E+ C. e6 c
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH! |' S+ g) r, f3 c
  13. chown -R www:www $WEB_PATH
复制代码

; Q( S; f( X/ e. \
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh8 i2 @+ i$ j7 |& [& @# F
export LAND="zh_CN.UTF-8"
9 Y& \' b" H0 h+ _REPOS="$1"
1 D/ o) R7 }5 D' s- ?) [REV="$2"
  S* H9 ^# O' T6 N% w" i5 A2 Q/ zsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
9 x# s/ e0 v. B; Xsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ ]' Q, m! B( |; n# ?/ c5 Z
  1. 1 f# [6 Y: H- Z
  2. #!/bin/sh# ^  ]( Z0 B1 ~" t) m7 i% D0 |
  3. export LAND="zh_CN.UTF-8"5 q* ]' T3 E" _
  4. REPOS="$1"
    & K) l' [5 ~8 k- A7 A' A) D
  5. REV="$2"" |+ P% v( h( Q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    : u" g7 n' ]1 Z" L" F# k9 l
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ W$ N8 S  e/ r& G5 |

3 O% g5 c7 w& t- G  ]
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 05:20 , Processed in 0.052719 second(s), 18 queries .

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