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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介. K& C0 E, E& [! B8 K# B
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
* _$ J6 `6 |' B1.准备工作# f9 C; d8 g5 s- Z% F
一台centos7 服务器 一台 客户端
) X/ }* A- s) I% i————————————————
" \% n" Y2 W* e$ P! @1、验证是否安装了SVN
8 O' u1 Q/ w9 P  v+ r. ^2 r* a8 o7 A  L. A  K0 M
命令: # rpm -qa subversion+ n( R9 V  q" c9 M* N) t  d

$ E: X( X+ T3 |9 N如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
% h* @; y! [% H& ?, v8 ], D% b$ f8 [1 b6 L
否则,空白( s" o$ t$ S3 ^, Q( j2 Z! |
: c; _' [) b! j1 n8 y7 m
2、安装SVN的命令: ^  x/ o0 r$ g8 O7 ]$ h" [. g2 h
7 r7 ^& D* s  b9 T2 N
# yum -y install subversion
8 g5 u3 G8 P6 @3 k+ T1 P  i% M8 _+ U# e
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录8 A2 \3 N( k+ R; Z( J; m
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
$ k: n; \, I, O0 M( v7 b
) q1 U: W$ s* H, r8 D然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置8 t  m& @. d1 Y! G3 X* x9 n

2 c( h1 b" n3 e, r* ksvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)$ t" f  a% S& h! d
; f/ K* R/ ]" R
9 o( c% b; N# {3 ~, R
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
& J$ @7 d, y# `2 n0 U- o' {# V7 h
# password-db = passwd
0 Q# A! M! U. i7 p8 c7 \& \4 d6 Q. D+ n. d$ ?. a! I
# authz-db = authz) ]" N5 k2 p& s1 s
# ]6 o& X5 y7 R' d4 j
; ~; T5 v( T( n# [& F
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ ~8 S6 o" q( y4 g) A7 ?

2 [  s# R! I* C登录名=密码5 R& W1 x( s% k0 _5 k7 _

8 R! E. c# F. Z/ ruser=1234562 E# B' t& K: N: G% y. m- D

2 `2 v, k, p3 w. p( D
+ R% \! w0 J9 {2 a6 w+ X; {: W* y最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
5 N- y6 g! i* _( h3 g
9 P+ v- R5 _1 O# _. J# * = r3 `5 L  V: B) s, V5 w& d

; `( ^7 S& [$ M0 h. d1 R[/]" y: C, V( S# d( n- O

" H2 D: K2 t* q* }/ v# r2 u3 xroot=rw
2 }- a6 ]& [: K4 O7 C4 Y- w. M% `
这是用户的配置就完成了% C$ \3 t5 F% m# T  m9 z3 G

( [7 @' l* L3 t' D接下来我们就需要开启svn svnserve -d -r /home/svn/blog # n) i0 a/ b) y# A: A" b* S
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
0 J# ~$ s! ?7 b$ C" a" M/ `3 ]
/ _- p7 L% x3 F8 f4 {+ T使用此命令开启svn 根据自己设置的目录自行更改4 v: B6 h! \/ {
7 ?% G3 Z! A- F
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' J9 `9 y  W" y- L) k
3 M" e3 c3 n8 i( P, o% q4 X% O
% d  R4 @  `8 q; k6 @( ~
win下载svn工具' a+ U) A1 r" O% T) s! z
2 w4 |8 S' X& P$ U) K& @
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
- T9 z0 s( ]8 L- i, h5 z+ r- W+ y2 \. b( I

9 J; q1 w* g2 g4 t( M1 [% x重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码0 z5 \' }: n7 U& t4 j* |( G
输入你的svn地址 地址请根据自己的设置自行更改+ \0 x$ Y7 t4 \& s, d

6 f$ {% Z& [9 p# L
/ l- P& Q  Q$ X  }/ x/ o/ R8 [( a然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
: [3 `' C& Q8 \9 g) c0 l) ^$ M7 q/ o5 q0 u
+ [, z% D2 u: p) b( {. a$ e. C% K
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
2 _7 a2 S9 i2 i0 y% Q1 |2 ]0 z: A# ~; R2 f& h# ]: M

- B6 Z- M4 m# _3 n4 i% }& Y% v( r
, L3 X" v& p+ d+ p可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存4 {8 R9 g  j4 m2 z( @$ z# `

* O5 e) O" p" |, p, i1 S( J; O5 x这时我们保存在版本库的代码就会被同步到网站根目录& L( m7 i7 ?0 v$ Q( B

5 Y6 s. [, ~  X
) R6 g; D) D1 z4 X6 p, i, D& _' X( `+ T5 o
) C  f4 w8 \9 ^
5 D! ]% r% Q' h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
/ q* N# @/ O0 I) B$ L+ Wcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit6 t0 g3 S$ Z& i4 P

% _, F( h, X. ?
  1. REPOS="$1"
    0 E% I$ v8 p" c8 ?* C% H' `3 i) `7 }
  2. REV="$2"
    , s) [' n1 S4 g7 c. Y
  3. TXN_NAME="$3"
    . g* ^4 e  d) V5 o
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"( e0 `; s* f" J8 j1 v
  5. MESSAGE="$(svnlook log $REPOS)"
    9 D6 B" X4 h. ^& R% H
  6. SVN_PATH=/usr/bin/svn/ ]" u6 v* v- Q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo) d6 J( P0 ~) I% ]3 A& f  j
  8. mkdir -p /var/log/svnlog
    9 k3 W. r' c6 ]; r# i2 |4 Q2 c% h; \
  9. touch /var/log/svnlog/ssyleo_update.log
    6 d9 c; h; M: Y& D9 j
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log$ U5 A6 L' u2 ^$ P% Q- _) t
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH, t( A$ O) D% q$ a( ]
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH) `9 `* c& R+ f6 A/ d, h
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH" M9 {1 K' `7 v! r. ]* Z+ X: S* M
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

9 m) J# x7 ~; ^$ `9 Y! f! O- [! s2 z
. H" U1 a9 f# C/ F9 _$ b6 f
  1. #!/bin/sh
    - M: m, ?; q7 F: m! Z9 y5 p- z
  2. #设定环境变量,如果没有设定可能会出现update报错7 _  p# w0 l9 a( x1 d  L
  3. export LANG=zh_CN.UTF-89 U" e: W6 c4 x% a5 y
  4. REPOS="$1"
    8 y  A* |5 o' g) b% {1 `
  5. REV="$2"
    , C& i5 n1 A) h$ F1 i% j
  6. SVN_PATH=/usr/bin/svn& a- J. p0 O: K$ e; A1 w; j, ]
  7. WEB_PATH=/web/project
      X( W& ?& A. Q7 _% {
  8. LOG_PATH=/tmp/svn_update.log* d) E+ G6 ?; n/ H
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
      V) g# q. \& Q
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ' q2 X$ @7 j- k+ _2 V
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH0 v0 D; _! W$ M) Z/ V2 I% G
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH/ s5 T( ?$ V! e' K, i+ t9 e
  13. chown -R www:www $WEB_PATH
复制代码

! J, Z1 K( q2 l1 t7 e3 k  ^
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh- I: g0 G. F1 \6 B1 ~" c* L; f
export LAND="zh_CN.UTF-8"
) K1 b* d: `. A+ cREPOS="$1"
! W* `" q+ k, ?  KREV="$2"* r8 z# w# l, K- Q/ @9 \- n( {
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 N" |7 G) z3 ]
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache2 G& ^: m; g6 \

  1. " Z/ ~: K- }* t! X! O, U7 z
  2. #!/bin/sh- u3 o% @: l7 k, R2 W4 o
  3. export LAND="zh_CN.UTF-8"
    - d  x" P, [: H! @* }: B% A, k
  4. REPOS="$1"
    7 R& \$ r( f: z) x5 G& p: ~
  5. REV="$2"
    4 L# N' G4 }) X8 Y& p0 _( u6 Z. d$ U) m
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ' I* o% a, k% T- \6 e" U
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

5 }) A9 I' U' M/ L& }9 }
5 K7 Y7 @2 T) G7 a" l4 ]; O
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-4 07:48 , Processed in 0.102876 second(s), 18 queries .

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