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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介9 J& r4 @' h5 ^$ e
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略), k' r" I9 h2 O2 ^* z8 f$ u! o5 U
1.准备工作
/ q5 Z' c9 B' p一台centos7 服务器 一台 客户端+ x! j3 d6 _( s9 }* v& s# j
————————————————4 E1 S! e( u7 S
1、验证是否安装了SVN
2 i; P' k- O* p5 X4 I7 ?  x8 Z. |1 S: _7 ~* Z" Q
命令: # rpm -qa subversion  }$ y( Q: z9 j) N( `- ~/ E

1 W7 n9 z  F; X+ W如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_644 C$ z4 q. o1 N% {

  X+ k# B0 \, K' `否则,空白
! S3 r5 V, _+ D6 X8 |' n6 T( u) f
2、安装SVN的命令1 W. D* ^! \+ u! j% v$ \

& U2 v6 q1 E1 F2 p! P, H# yum -y install subversion
2 {6 c$ r# o) z2 |) V
- |# |* G* p( L' p0 @5 s7 c接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录2 k( L) a# N; s5 [
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
: w8 Y9 I" Y3 M+ t+ c* W  K0 l. H
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
3 U1 ]' c5 M; y7 K, p- C  F  t* ~9 X4 M
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)' B4 l% p+ S" l, D1 s

+ O3 Y, N% J# C& E: b
. @  j- J5 j9 a% D0 D首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
8 G1 {: q1 ]9 N# H! D. v+ f
9 f* c- t. d8 j1 u+ T, y9 p9 S# password-db = passwd
. k1 u7 E. ]. g1 b" O' A
2 o# A9 z$ Y) \' F9 w& I; I# authz-db = authz$ F* ~2 D2 s" \5 Q4 M' u3 i* a
8 l; ?) K2 u% ~" A" Y" }

) t- Y- J" j3 o8 b- D, n: z3 R然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效8 r5 f1 V9 [8 n/ o4 h, I1 s7 X$ |- T
8 s& @) d0 W8 K( Q9 i
登录名=密码
) A( @& J4 l0 N8 f# F
1 s# O* p7 Q7 n0 z. Duser=123456
& j* u, f3 H/ X- d$ |( a3 h6 \* ?- |  m
$ f3 G+ g# [! [5 a6 A& N  S+ ]
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
/ t% w. `+ k$ Z! L. R9 Q
/ R2 r% X/ c8 f$ I# * = r% j* p* V3 [, h. `5 A

0 R' m1 G# c" W! B8 L' m[/]
/ [, f3 N; k) l. ]& l& K
. V  s. f+ B% a5 W. m# o. @, _root=rw/ ?. N2 V& K+ e

" d# q0 j0 _) x' F/ `这是用户的配置就完成了
) w) @+ O2 N3 [5 n/ E2 z& I9 x  r% f. R6 C# g7 w7 @
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
6 Y3 d# j& G; N0 }! {  Y/ osvnserve -d --listen-prot 端口 -r /data/svn/ssyleo9 r* L9 x, y$ o" q8 ]6 j1 V! g

" }7 S9 {9 X* j* O使用此命令开启svn 根据自己设置的目录自行更改
9 Q- f! [  y. W. M5 L- c- O7 {7 |; z, ~' Y- B8 i: w& e
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
/ y- c( Y4 P% `: i/ @0 h( C9 b- A
) d: ]% Q; P; G5 ?0 O# \& v
1 j6 k9 X! y. h/ }4 P; Fwin下载svn工具
  w+ [" b( R6 l- k; x- v" A% M/ w
: g' ^: ]* `7 r) Q# ]: ~4 H接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
) K+ o8 Z  m0 U( k5 m( L% g  T0 }) L% D5 x
; t6 ?! W+ x; g; \. j* `4 t
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码) }! B: u4 e1 }
输入你的svn地址 地址请根据自己的设置自行更改
- f3 b1 Y+ R2 p
; r% y; _+ g6 t" d; d/ U& e
9 v7 s+ f! t. K- r# ]7 J然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了2 z! W  q" R6 N: K8 k
0 x0 M9 A+ x- Z# T4 m

8 z. c2 A. |& m(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
! b( {8 n# _2 \7 y4 E- w- @& [9 h$ e! Q

+ e5 S# O- c+ W0 U; ~1 R% L; g$ |
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存1 g3 z2 i: B1 ^8 Y4 W: q, `/ ~+ N0 D5 I0 M

5 f( Z) j% R& n& M; Q; P) s0 `3 Q这时我们保存在版本库的代码就会被同步到网站根目录5 `/ c- v5 k8 b% O
' \0 p5 w9 ?( ^8 [
# a. [. L2 n& ^. @

' v# n3 ^4 {4 x+ G3 K
$ f+ O$ K* {& ~. u5 |$ F; i4 ?: i+ `4 g9 Q5 O7 \9 M# M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录7 ]8 g" M: a4 L/ x2 \5 c, D! d
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit9 a, S: e7 e4 `; x# H

! L8 v7 c2 B; n4 J  S& |" S: m' `
  1. REPOS="$1"
    - n" W( g- o3 ^" e# E# d" @- D
  2. REV="$2"& K2 Y8 m) k$ w- Q1 Y
  3. TXN_NAME="$3"
    5 T( X$ s' q. e. V% ?. k  L  N) e
  4. AUTHOR="$(svnlook author -r $REV $REPOS)": Q( G1 d2 t! F+ [9 z! I
  5. MESSAGE="$(svnlook log $REPOS)"
    ' d) ]+ U0 p: B3 ?2 m
  6. SVN_PATH=/usr/bin/svn# M" A  n  ]& ^  p; O* l! e) f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo' v" H8 U  t/ R( t2 G8 G
  8. mkdir -p /var/log/svnlog
    # u: R. U8 P9 @, u' c0 i7 E
  9. touch /var/log/svnlog/ssyleo_update.log
    / J6 g5 v$ C% f6 e2 ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log1 B8 e- a& J, L9 `
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH# q8 @/ P6 _; I7 l5 X  m3 f' k4 u
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH# Y  l1 @5 J+ s2 U; x0 |
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH5 a: \2 R0 H, S  M  q4 D6 d# j
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
& ]2 c1 W$ N$ L
* o- S/ `" z" \
  1. #!/bin/sh
    5 P+ x+ K0 m, a. Z* X: ~/ h# n( X
  2. #设定环境变量,如果没有设定可能会出现update报错0 ]3 J3 U$ D/ l& S8 T% z
  3. export LANG=zh_CN.UTF-8
    ! i+ z; n0 p& Q+ L: u* g4 R; Z6 X/ X
  4. REPOS="$1"8 b& }( V2 B4 i- H
  5. REV="$2"/ w0 Z# e9 w" ]7 H% y! T- z
  6. SVN_PATH=/usr/bin/svn
    5 Q5 j# y5 \! ?3 X% J$ S2 G5 n3 [9 ]
  7. WEB_PATH=/web/project
    8 z5 E6 ?& t7 f+ X" k& H, a
  8. LOG_PATH=/tmp/svn_update.log( O# ^/ V  x, l" F# K- R4 P! R9 P5 p
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    % Q' D1 W9 M9 x+ o# i/ w
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    9 |* j0 r5 k5 ^; ]) q: N; q
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH2 @3 n7 ]1 L5 ^3 r  Z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
      Q4 h/ k# C. D# @6 a  U% f
  13. chown -R www:www $WEB_PATH
复制代码

: Q7 ^& B5 W- M1 H# r; a
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh1 |' ?( t: o, Y3 b  L* K
export LAND="zh_CN.UTF-8"
0 z5 }( N/ K' [) E. J3 y, ]REPOS="$1"
# J8 ^; I- C+ F# M, ?& f% gREV="$2"
; x; L8 |& L$ A: t8 Ssvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  T* W( `6 ^# e1 P& A& m: `$ V+ R* w
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. i, R- ?4 f$ r/ ^; ^2 i
  1. ) `: l; v7 N4 K; _2 o
  2. #!/bin/sh6 ]' a& N6 E# g( g
  3. export LAND="zh_CN.UTF-8"
    % c- P; T3 ~9 J, n" A, f$ K9 Y8 A
  4. REPOS="$1"4 S# t  F; m. q* \
  5. REV="$2"/ Z) |! M& F' n; u( A5 f/ s) c
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 j1 m* e' u% z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
0 z5 @) s; L' E

0 ?5 {% F' y& W5 L* p5 ?
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-20 00:59 , Processed in 0.114417 second(s), 20 queries .

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