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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
( _1 P8 ~/ Y) ySVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)/ I# H9 K* k. I& s
1.准备工作2 b7 ]1 V4 D+ Q2 I
一台centos7 服务器 一台 客户端
: t* L  R, Q8 R3 D% ]( g8 g————————————————
7 C6 n0 O3 T. o/ g9 u- G2 g, k5 x1、验证是否安装了SVN
; U. o- B/ [3 C% ]! Z9 W6 n) b7 A% U# p, ~' k2 ^2 W
命令: # rpm -qa subversion
' l) w3 e( P2 B, q: s2 Q" y
: t6 a$ d9 l0 A3 @4 K7 U如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
6 \  T' {. U) P+ [( Z7 R0 e2 [. ~1 m# e# P6 [/ ^
否则,空白
' X+ h9 m$ ?( H! g2 l
9 j1 ~- G8 H' _5 u2、安装SVN的命令$ p! t$ a) h3 O' ]1 O+ _

+ M: L% e2 {0 a" Q# yum -y install subversion! ^9 f! T. d) H* i" p1 U
0 z# _1 S; P. u  v
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
0 N/ G* J( z5 P1 _. r0 j2 G/ F创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
# x: q+ M4 S1 I" ^. D: T
4 _" u. P" ^# d% p+ D" r! z然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置9 |6 x; V  q+ f' r8 O
2 K7 T; [2 W$ Z" F/ M6 Y
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)5 X9 ]- r+ h) |  j* u

' M# S" v/ c8 T/ k* O+ k' G3 N  l; w/ ^; t: j
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格/ G4 w# h9 G, G! ~0 |
- O  t3 x( f9 W* w
# password-db = passwd. M' k  v, E) G' g% j6 W3 P

/ f7 N. P* Z3 b; e4 q# authz-db = authz  ?: M8 O( y2 l" }" u1 n. I

* J, Y; \5 Y* B3 \$ W+ k) n, l
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
$ D3 M" Q3 a* h7 a+ ]& j6 f  P% b: D+ W. F9 k; T8 \
登录名=密码
5 p& j$ J! F- h" e0 l8 d8 ^/ @) \1 p5 w7 }5 W0 l0 p
user=1234563 @' v) M# D9 ]7 a
! Y' W; Q, E: {3 K- c! ?+ O
( b# z/ h4 Z$ [  V$ `
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)! l$ x- `" R- F# T" S0 B

% a" R; \- b! w4 ?& a# \8 |  Z# * = r/ V) |: S+ G0 f

# q- B1 p6 Z+ ^[/]
7 i: N) n1 Y0 i& F# y& g7 \' Y6 a/ ]  M: m( M- L6 O
root=rw
3 |. `$ a/ p6 z1 F
# q! F- l* M4 b6 S0 I9 W$ {  o这是用户的配置就完成了1 S8 p' _0 w& G- J1 q! w) W2 G. h

3 e* O2 p0 D7 i& L! N. [1 J; G. K* [接下来我们就需要开启svn svnserve -d -r /home/svn/blog
) L8 q* I! T0 {5 s- P& xsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
( q( @& q6 ^4 C1 N* g% }4 l* p4 a$ V
使用此命令开启svn 根据自己设置的目录自行更改
  z( X! Z4 p2 r7 r# B" h
8 A: o' d$ n' r5 k3 z% n( k使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
: S8 o7 c' Y. T( Z- F
6 |& G0 e, P* O' j. @. n
: g6 g1 E& N  ?6 Y4 C: V+ {win下载svn工具
0 B0 D& i3 y' U8 ^- L! a: n
& ^% Y# b( _& [  G+ Q3 ?: h5 M  T接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了' H' [4 x6 l3 h4 Z* {9 R

1 \0 `, Z6 ~# b/ m1 E" @
% @9 U/ E6 G! M  J7 R重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码/ X3 [( p  t5 [( B/ ]- l
输入你的svn地址 地址请根据自己的设置自行更改
, Q+ a" C4 d7 M, g4 U7 \& C5 S; s# J4 z$ ^5 q* B

+ n3 v' F+ ?" k1 M, }( c7 \$ [然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了% p! m* T( X" D; Q. C
; R2 e) h0 C5 i; {- W+ U& V0 j" d, ]
6 _5 I9 [; y/ V& p9 }
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)2 {9 Q1 B# d  h+ Z, }9 S3 ~
6 ?' \8 O2 w' `2 R0 L+ Z; M2 v

" ?$ V* Q  `( A
- B: [9 a% _, [8 M2 \6 D可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" i/ y$ h2 ]" }* R1 _: c: Y; `  u. R
这时我们保存在版本库的代码就会被同步到网站根目录: |4 u) W2 T! C' X8 f! d" @( k
$ V- A& n. g& M/ Y( @7 [, q
$ {* R1 c. C* l" L: @0 [
0 Y$ R9 o2 m; ~* a
+ r+ J9 P- x+ {

* r; U( y$ S/ E  X* \! b. m/ x6 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录2 `! P/ s9 u2 s8 k
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
# t" ~! o+ o; I' d" W$ T$ B, T7 h$ W* R) E+ U1 B% v8 Q. w# v
  1. REPOS="$1"' B) ~  }' `4 J
  2. REV="$2"/ ?& L% S$ v* ?- [! f3 n
  3. TXN_NAME="$3"# ^' ?7 F8 r0 j  ?: ?
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    5 M! s: |. N/ _; e
  5. MESSAGE="$(svnlook log $REPOS)"  f) Z6 V5 w, d+ c
  6. SVN_PATH=/usr/bin/svn; o3 t/ u* v; i& j! M$ s
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    2 g6 n: K+ G0 o6 J7 }9 X
  8. mkdir -p /var/log/svnlog
    $ W% Y' L0 c' ^7 I
  9. touch /var/log/svnlog/ssyleo_update.log
    " `( ~! f( L' l3 q9 C
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    $ q- G9 i9 ?# F  v
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    1 ^% t8 x% F- r
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH! B2 O  S5 Q6 y1 n
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ' z1 o/ D2 }5 u6 v! M) a
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
, Q' {0 w5 w% L$ d- x& F. x9 o' |

# f  U; R# Y/ l
  1. #!/bin/sh0 |5 j4 I5 x) r" e
  2. #设定环境变量,如果没有设定可能会出现update报错
    1 y/ W  }$ R8 Y* W  f) Q3 m
  3. export LANG=zh_CN.UTF-8
    1 e+ Z# v8 g* G6 _
  4. REPOS="$1"' w. K9 z& k6 P3 [
  5. REV="$2"
    , y$ t! }7 `$ l+ K$ |  }
  6. SVN_PATH=/usr/bin/svn9 t' r) f/ y0 m. a+ p
  7. WEB_PATH=/web/project
    7 V1 T/ s$ @' T/ k% r9 [3 f7 e  c7 W
  8. LOG_PATH=/tmp/svn_update.log4 g& d, r6 k5 F( Z; Q: `% L
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    2 l5 K6 S6 D! s- v- t& b9 n, b
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    # @7 C# d0 E* ?! O- z; Z6 c
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH+ G6 X) }; y! Y( z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    # G2 {# V( h! k  y. c2 k  `
  13. chown -R www:www $WEB_PATH
复制代码

7 e/ X/ a8 {8 V$ B. B# N
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
9 e) ]- V! p, Z! f- f9 ]! [( {# r% vexport LAND="zh_CN.UTF-8"5 V! O2 p$ R) g- U! p' S4 H
REPOS="$1"6 ]6 n6 z! {6 |& I7 }! E" {
REV="$2"
! ~/ y7 l/ @, M1 `$ F& `5 qsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) C2 H4 N/ Z- c: J3 T
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
# j8 F* U- h5 p% e' m
  1. ; d1 ]; |# o* {! u
  2. #!/bin/sh
    ) [0 I' s* I5 O0 O5 e5 _% |
  3. export LAND="zh_CN.UTF-8"2 h/ P. @, H, Q" G! J
  4. REPOS="$1"0 V; {# s6 E2 Y, H
  5. REV="$2"( k6 S7 I+ |! j; \
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    4 E. |4 j, u$ L6 }
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
! l( R' N" d& r8 R6 a

. ^6 d% s) M1 o. C8 m+ p
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:31 , Processed in 0.054856 second(s), 18 queries .

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