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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
8 x3 _' C9 m4 C0 g6 r( OSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
4 W" u7 C2 O) X" N1.准备工作
6 M. E* U- K% x/ C, p" @一台centos7 服务器 一台 客户端0 q& j4 ^) a* _1 n& Z) `
————————————————+ k; K( \' i- g' t9 x* o
1、验证是否安装了SVN
* _6 U4 {; K1 G6 u  h# Z$ l6 Y) @3 U2 n* |8 [! X6 B
命令: # rpm -qa subversion
* j0 c2 Q+ D4 v6 \4 N# v. s- j! L4 U/ v. u; j. V, L
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_644 P, F6 E* Z5 d3 y5 [( W/ j

2 A9 E. Q) s) {! Q9 \' b否则,空白
' b( s! N; n" S8 I: u- I+ f4 @9 F# D( n9 e
2、安装SVN的命令
% e- s- ?9 D' r/ z7 p
# I+ \1 f  l2 Q3 @" ?( l( _) _# yum -y install subversion# ~  S4 s! R4 k; i- D/ @
8 c0 N" _2 ^7 r- k+ Y5 i
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
. S9 X7 e3 @4 _4 y2 W创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
/ c% b. g" g8 t% W" y$ n' p1 k, Q( ~  E4 Q1 [5 j
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
) C8 L( t7 ~% V/ [, c6 L  T2 U8 V! _. E  p4 w5 i/ F
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# U5 J1 f' X  ?+ Y

, Z) |% L" u2 X- u/ f: T0 f0 D. Q
# h" C( k9 o8 @; t) {首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
. I2 I) S2 ]4 P- n) O2 L7 K( o6 I9 {% }1 N- E& S$ g
# password-db = passwd
, u7 f& u% V4 F; g$ q' P6 y- N+ f2 B8 [( v" h. b" M: m0 ]/ T0 k
# authz-db = authz9 x# r4 V: |# K; @% E6 I

+ I+ d: f  n0 n" T/ k, Y% t" }
, G0 H5 m$ u; x4 Y6 L8 c然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
$ q) n$ J" s- N! r: H
7 ]$ e" C, v6 w# f0 h" w登录名=密码7 X: w' d; D! Z# J
, E" m( P" u: ^, v, c
user=123456
& Z/ o% l- p, G2 j
* K! P/ i' x% h* F
: c3 P$ I5 O3 x$ A& m最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)# k. n! h+ E! r. e( i7 U6 g
- I/ \+ S9 Y" T) x1 g! q
# * = r
! G  a. z; S8 H+ l; X8 @/ O, s) H9 B, |2 }9 i$ g! X. o7 s
[/]. @& G8 m- H5 C0 E

1 [2 w3 c: ]" t2 k+ rroot=rw- e8 ^7 _3 h6 Q" K3 X/ ^4 q% g
  Y; A& X, S1 r( P( e5 {5 a, h
这是用户的配置就完成了
: h! E8 I& w4 |' X, @  l, c( c7 D. t4 B, U; e# h9 M# f
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
- J: @* c+ {: xsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo. E4 n0 m0 N8 Y' |, i( w* T7 }

( u; ~, j, Z: b* C( R) b$ K+ ^( ~使用此命令开启svn 根据自己设置的目录自行更改  v; n! S4 B- e3 H8 p3 e4 S

1 J0 M8 k! ]* i1 ?# ~% Q使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了% i3 M' A% r. z* B+ s* b
, W( r! ?: v9 L1 S0 R# T
, v2 t% _; N  d4 T9 a
win下载svn工具
& I" l! M0 r  e1 ?! a1 D0 k% V5 w4 f6 G
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了, L8 s: m3 Z# n1 e& S- h9 c$ o

3 s( o8 m% z" ?9 ^5 b' o7 O( r6 F- ?3 E; c" }7 M! u  k
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
( l. \) V( C. ?输入你的svn地址 地址请根据自己的设置自行更改) N& f- a5 \/ I3 u
& X9 q  i4 J0 I- |$ _- {# W! A

9 q) Y% n4 y8 h) y" \' g" [然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了; {# Z( V: t" W4 [% M

, W: N; n: Q' S: L3 @
2 n+ u; J5 n% W: O9 J# x(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
: z7 k% I' l2 `9 K  \6 j' v0 i( Q1 {, x, i+ Q& P! l# Q, ?* S

# `% N3 Y( c- k5 k3 E6 }$ i+ D3 [* S  k& d) [! ]
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
: R* p" p! w. f
: h. i$ t: |" c( b2 v1 H/ V3 D这时我们保存在版本库的代码就会被同步到网站根目录
, b6 `4 N% L! t% y( F* }2 [1 z$ |$ y3 e

6 J9 B. l4 }+ ]. ]/ ^2 ?
1 p0 ~3 W: V+ T2 C, g! Y( N- B3 i5 C" }3 Z& \3 U# N1 A: G

, F2 n9 L6 Z' v5 O2 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
- y; D  @4 L# u* c$ Bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
# |) k/ \6 g4 Q) c! q. C) E4 |7 v* p/ j) V4 @. R) r  {: g
  1. REPOS="$1"0 k! a2 F- n% |1 k+ B/ v
  2. REV="$2"
    ( J1 F* g' P' X9 D
  3. TXN_NAME="$3", M5 k4 T# n+ `  T
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    0 f' ~0 J( A4 z0 {  B, M. u+ y2 A
  5. MESSAGE="$(svnlook log $REPOS)"
    ! j6 W* n# Q( {: p' Z
  6. SVN_PATH=/usr/bin/svn( K* a* i3 C) Z" A8 C7 j; D
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    2 x6 r3 B3 ]6 B9 a; S6 ~
  8. mkdir -p /var/log/svnlog
    2 `' r5 a/ Z6 C1 g0 C, a
  9. touch /var/log/svnlog/ssyleo_update.log
    ; A6 ^( M* B: L
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log7 d; ?( s/ Y# _5 s" b' o) K+ u
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH$ b. M& P. a* `7 X5 C  ^0 S
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH6 ~1 H" R1 g$ e" B
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH8 f8 T3 m) j+ X* A  x+ a3 x
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

  w5 z: h: J3 _3 @$ S6 d0 V, j6 J7 W: a2 c
  1. #!/bin/sh1 t5 g6 L& a. |- x
  2. #设定环境变量,如果没有设定可能会出现update报错
    / S' `2 ?9 M( n' [/ d0 B7 R# J! m; M
  3. export LANG=zh_CN.UTF-8
    0 T" L; S, U2 h2 K+ ]7 d1 q: t
  4. REPOS="$1"1 `% x4 G0 P6 n1 V; F
  5. REV="$2"& h. z3 M$ T! D0 K' J+ Q" }
  6. SVN_PATH=/usr/bin/svn
    ! Z0 l: m5 o, ?3 Q( X
  7. WEB_PATH=/web/project
    4 J7 N7 d5 x+ V$ M# H
  8. LOG_PATH=/tmp/svn_update.log
    . S0 d/ [- y! y% f% `3 e. e' z2 ]
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache9 C5 b# x! f- Y% a& @* e
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + K6 b+ _5 x1 B4 V" r! ^$ `
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH1 j4 K8 g' s) x: J" K
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    & _. ^. `1 ~8 [
  13. chown -R www:www $WEB_PATH
复制代码
3 z4 k$ T9 r- y  i+ O3 Y
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 O1 \, ~3 d) J# L  M# {! o& D! W
export LAND="zh_CN.UTF-8"; F; d2 l* S' r6 Q! J8 E
REPOS="$1"2 T7 u2 O- k0 I$ m
REV="$2"
0 N. {. V* q" e0 ^svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( C! e$ {  K) V9 k( w' W
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache: [6 J0 i* X" s6 g( h' L+ k
  1. 9 B  D* \+ X9 U6 ]
  2. #!/bin/sh
    1 H4 ~' j5 m& ~/ j: F  ?
  3. export LAND="zh_CN.UTF-8"
    . }, @6 v; ^* I0 ?  z! I
  4. REPOS="$1"8 L1 K! t0 E/ Q8 g" M3 j7 I
  5. REV="$2"
    . m+ c2 H% R, e( n; \) S* T
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache/ Y2 t. c0 T) c' G
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
2 F; Z9 }# A, T9 j+ Z
- h: v" n3 i# R2 }4 d3 {& x1 U
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 11:24 , Processed in 0.112455 second(s), 18 queries .

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