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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
; i- w  }; q$ h0 s6 N  ZSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)) d! f' T1 X) K; n: b# k: E! V4 E% ?
1.准备工作
2 n9 ?+ f9 s4 G" P一台centos7 服务器 一台 客户端
7 j; ~: q, V; ^' y————————————————
$ ^: x' C# o: o5 N. u1 w% z4 J0 v& ]6 G1、验证是否安装了SVN
7 ~4 g/ h  o. W" X) ]6 Q- b
) Y; K- ?. Z4 D+ D6 \1 L命令: # rpm -qa subversion
+ o  H7 q! n% w1 K7 h% }
7 e, P* N2 T- {$ y0 h3 _1 _如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
4 c; a2 f" ^( Z1 Y, b
" F+ o9 V% x. j否则,空白3 f  E2 J1 H+ q- _# E) e$ C0 C
( O7 |; W5 c# i4 N2 d% D% R& D
2、安装SVN的命令
1 Z% |  M7 `7 P- b. Y: K! n. T+ ~6 H; q, b, D3 X
# yum -y install subversion0 R( S- g5 p4 y
  X2 G1 Z, `( }+ v* Q$ @( ^5 `
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录6 r- n+ u+ m+ b: d' H; @, Y: x( t
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" [6 d; P( d2 k+ V3 j
+ A0 L+ j( o7 \: f% n- ~1 j& x
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置, g( n7 H4 q; N5 r. ^* q

# q5 ~0 F% y5 S. c4 x! @9 S, i- rsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
8 Z: y- A4 s) k0 M/ L
& S9 ]2 |; h" }# p) [+ q- B! V$ I$ l7 b' A8 X& U6 i4 [9 |: _1 \. v
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格! a  \$ {# T% Z0 l( r
! c( {/ [+ t* {; G( ^1 W9 g
# password-db = passwd
1 a! u6 |" o+ ^7 Z& R5 Z8 Y; `( J6 W& a! J5 N) P2 y
# authz-db = authz, R* r9 i" z0 K

! Y) X( M: M, g& z; M6 B
- w# @( r8 O. ~# ]* C+ h' ~7 [然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
8 J+ k& X4 V2 w1 A% E$ A6 U, S3 z# V4 J- P
登录名=密码
0 Z$ s0 ]( T0 q! R7 H0 b4 f
/ T" Z# x1 ~1 }0 ~user=123456
/ l5 Q$ Z/ f# w' Z3 J) ~
( ]4 b7 U3 z. A6 X+ y6 z5 z
- b- e5 ]* R8 ^, Y最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
. F; B" w6 c' x/ S9 m9 v' r8 @: N& q( ~. [$ A- H
# * = r6 _) x8 n! X1 j  ?* `$ z/ L
3 p) u2 C- b1 l% [4 e# [/ M! J
[/]
, Y( n0 q7 a. K* S* D' L
% J' ~: J9 L* @% Broot=rw  ]: g$ u: @, M" a* v8 _$ J, a
: B7 q  ~$ ~% y+ a
这是用户的配置就完成了
5 O& A1 t0 w5 a2 A, s5 Y+ i, ^6 e9 |. u0 ^! \" Z+ ~* Y
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 9 l8 v# s! x( O! o* j+ `
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
7 `" ~# K( [( d+ j$ m" y
% X8 V4 X; f; U7 Y$ h) y0 b使用此命令开启svn 根据自己设置的目录自行更改
8 s1 ]" k3 i2 q8 Y2 D- H) D& N/ U& X' [
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了9 b1 i' }, ^0 S! L2 L( j

& ]  g; U4 Z; o" v. X2 v
8 X" h+ E! |* ^# X# ^+ e# i; n* W3 awin下载svn工具8 i, V. X8 @, j; u( }6 e. n7 V+ i
$ S+ b; X8 B: I- I* {# I2 f
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了$ d! R$ W) w0 e8 R, I
, [% G3 `- h! P

# q9 a4 o  D8 x8 F) k% Z. e* I1 g重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码5 I# y8 V2 G! n
输入你的svn地址 地址请根据自己的设置自行更改
! \( `+ l/ n" r" G
' l! O+ B) j6 i- A$ F; c; _
; e2 S. J" V0 \; f1 ]! i8 S) a4 F然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
  ]. Y' b/ o) @' G7 _& y$ i; f& ^$ V! z
/ h! l9 L7 p3 G) E/ m
% ^; g7 H" w, T1 J% C(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)' K0 E8 D* P* B9 ?9 i+ B

2 X* _% p$ m+ A0 [& p  ]
- k. T0 v: I! R2 Z% Q( \" K
5 Q' ]& \, t- L! Y3 `( q可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存$ ]  G& F( M# e& Z" K! t0 |
/ Q( S* i& M- x5 L/ r' f+ t. S' e+ X
这时我们保存在版本库的代码就会被同步到网站根目录
( }1 t: K' `# V$ r# ?5 Y$ E; b+ G* n" t" J; s4 x

0 N( L# \' p. Q* p$ P0 s2 c: A4 F4 O! p% M8 _0 g

5 s( t" b, k5 s$ L1 ?$ m* x
) X; U7 L6 q  x! O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
5 E( h3 S0 o* m9 n0 r& {cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
; v, J' G6 x* g% l( D' k7 i0 U4 w0 x4 V% l# d" B4 i
  1. REPOS="$1"
    - D. L8 N0 X5 P2 |$ Q* E
  2. REV="$2": L) V4 ~; I+ `7 u9 e! k! l! K
  3. TXN_NAME="$3": D# b5 l9 ?( o* f" J- c* Y9 V4 j
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    % r1 l* X- G9 ~0 a! e2 X$ D  S
  5. MESSAGE="$(svnlook log $REPOS)"
    6 T3 U. g3 G* t* v% E' h7 a3 e$ o
  6. SVN_PATH=/usr/bin/svn. u! ?# W! {0 O% w1 \
  7. WEB_PATH=/usr/share/nginx/html/ssyleo, c) P7 p8 i* y4 z& B
  8. mkdir -p /var/log/svnlog
    # z3 m, l+ u6 ~+ I% f; e; z% n) J
  9. touch /var/log/svnlog/ssyleo_update.log; I' T. Y/ O- X% T- m0 _
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log- q8 x; s$ _! j5 {. B. v
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH1 V4 N$ X" [/ F
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH+ l$ i/ r$ I1 p8 N' H: H/ |, O" W
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH+ e+ J0 `- }3 S% E! M. _, @/ ~1 F
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
' P  U; _% B' U
+ ]  _# J) m( S0 j# @
  1. #!/bin/sh
    / \* s  I- O: A- b, f/ W
  2. #设定环境变量,如果没有设定可能会出现update报错  G+ b- p5 Z+ e& F. F6 X
  3. export LANG=zh_CN.UTF-8
    1 ~6 ~5 g6 E% T0 t5 u
  4. REPOS="$1": t6 X4 i* Z" u( E; e2 A; i+ {; c
  5. REV="$2"
    + `5 k% T; {0 u2 ?% Z  l
  6. SVN_PATH=/usr/bin/svn
    ; o- G: N) T7 b
  7. WEB_PATH=/web/project
    ' c* Z5 g/ F4 ?  A& o( `
  8. LOG_PATH=/tmp/svn_update.log+ Q1 ]7 p; h8 y
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    # L$ H, J2 O1 `! w
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH, n; x# P7 ^6 i5 v" [% |
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH) s1 h* C0 `' A1 v
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    + P4 a( u% D' q9 _5 j6 W8 W) S3 l
  13. chown -R www:www $WEB_PATH
复制代码

; S) x* s9 C* z9 b
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
" K" v/ C9 a( M! v: }. Nexport LAND="zh_CN.UTF-8"
8 z3 U; m: B5 K6 hREPOS="$1"
6 [1 G. d" _2 W! T" Z+ i+ ?! T1 n  tREV="$2"
7 z0 j# l  ]; t& e' N+ Esvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# g! ~$ k! e/ x- E# i  S5 i8 E2 ~! P* X
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
& f7 j( F7 M0 t
  1. 1 v: R" }) P( c' h) o% i; @
  2. #!/bin/sh
    ! J# j% r3 H! d9 Q- w4 }
  3. export LAND="zh_CN.UTF-8"" |% c4 ?; y1 u7 }* q- q
  4. REPOS="$1"& P9 y6 r1 n" _" g: d
  5. REV="$2"7 o# e$ u& b6 D
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 @. R* z* Z, P5 j
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
: x6 ?5 U7 \$ `

( `: [0 |2 g+ ?( \
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:39 , Processed in 0.057367 second(s), 18 queries .

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