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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
3 l+ e; z5 r! o  `, \' q' m% c0 u$ XSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
, |+ ^( Y: A$ b7 P1.准备工作
9 F# o# d3 Q: V# N; O1 I* b, D. U一台centos7 服务器 一台 客户端" ]6 n! y. W7 j* v
————————————————
8 O% j# i2 @) ^9 B, I+ g1、验证是否安装了SVN
- I- M* b7 w; g% L0 i1 g/ C" ^3 x1 l- `' U
命令: # rpm -qa subversion$ A2 x) w" N! }' m9 I6 @+ f
, D9 N2 O0 n1 q: q% ^; u' X
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
4 X3 {/ v& w- h) Z/ }, n+ b) T2 t# S% i! h) H, ?6 y
否则,空白
1 d5 w& e' X, a3 \
: I! ]- \' p& m" M6 b  R2、安装SVN的命令
. |/ t* M- f3 {$ r2 I5 Q# K; Y! _/ i% b- C- l4 w
# yum -y install subversion
9 Y+ `) {$ `2 e$ k1 `- S. o% X9 W+ v
" ?: E; v- h2 g" Z3 Y& C/ M( g接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
/ |) [9 p* [! {$ S& X$ P- n2 k5 Y# @创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
( |+ C3 S( Z! c7 D; v+ T+ I- _3 a
  {$ M/ i" I. i: L& M$ C4 o然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置2 s7 j6 K7 c# {3 L2 _
+ J3 ?; ^2 N8 `
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# [  h1 V" F7 `2 f# W, y4 m; b; t# |

8 r7 [, H! }, r/ O$ T3 t  S- r% H9 K0 p- R0 x2 N
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
5 w4 K% p# v# m! V
+ s( X' _( c) _# password-db = passwd. r1 A: \7 w1 k# m1 |+ ?- {: _

2 r" i7 Q3 ?) x! A# authz-db = authz* F$ w* c& C5 o! ~, y. G* ]

7 k/ d+ r3 P" i+ q
, y3 j9 N. F6 z, v% n然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效" K- S0 |( I8 h, ?7 c7 |/ n

0 I  s! D# n( s  @登录名=密码' L. k5 N  K, Q6 W0 @
9 n' A2 J/ X! R5 G9 a. M; J, P6 N
user=1234562 A" z, Z. V) n" H5 c" x- h& ]) R$ }

( v& x0 O( \, q$ \4 D. {# R+ |% a- B( E. @
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)" [; Y2 K! @( }. [9 V: j; n. k# N6 N" V
+ j! p* e2 k* q6 C; X6 m
# * = r
! z, ?: @7 c; V4 c8 L
* @$ Y/ l8 a) v. o[/]
" T9 G# A$ g# I
+ G' {1 k) F& ?) R, a4 P6 n$ Nroot=rw
+ q7 m( a6 j# x7 V6 z+ K. R* K% y: V/ {6 z. `% G, @* k6 Z
这是用户的配置就完成了  F6 E, R6 ]/ {- c1 `& f
( q+ @/ k9 c( `, z3 n
接下来我们就需要开启svn svnserve -d -r /home/svn/blog + X' k% e: r& H3 h  {* ]
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo* b/ h: H9 K. X4 x) i

# s7 V  `; Z% I- W% A使用此命令开启svn 根据自己设置的目录自行更改
& a6 y; A+ V# b. L  Z1 |! }' {
  I4 _. C; M9 K5 B5 H/ L使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
8 N7 U5 M' t8 v3 T; T  D. s1 ?4 X5 V3 q9 W- \/ N
" t( K4 q# H; H4 q( [
win下载svn工具
& B' h& x9 P  R$ C  r7 w
9 k% c% Q3 p( i6 U接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了% A# ?& m8 h) c

4 H- r1 z# g" ?5 @$ ], a4 y9 P8 O. T$ m" j
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
0 o5 G4 v8 X- ^& F输入你的svn地址 地址请根据自己的设置自行更改0 ]- ?6 P& _6 \
6 K8 E9 ]8 y4 j' |5 m& R
0 o* J8 h# b* h% |
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了+ h6 r7 s! X& L% b( d! T1 _9 L
: p! f  r' \" T4 a" x0 u
3 ^) v/ z$ E. u; `* @7 O1 ~
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)' @2 e7 t* G9 O" r# T" T
- j- n8 k2 k+ s7 V3 p$ V
( _7 j8 f7 X1 ], e! P7 ^) V

* u5 b/ C8 z* a- X; @5 b5 c可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存7 S* _3 k% r4 l" \/ t
4 Q  s' V; p4 n) k8 {
这时我们保存在版本库的代码就会被同步到网站根目录
; S0 M3 E/ E, C7 F) g4 P
( u. T$ M$ Y) g9 S' @2 N
/ p( D, Q! d/ R4 b- B0 o  }2 l) ~( I/ U! W* [# Z  {2 A
; M. ~! `0 G: P7 P8 m) \) a: l

: ^) ?  P4 o. Z: V0 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
; o4 m$ ^  A& cexport LAND="zh_CN.UTF-8"  G  U# b* M( Y- b3 e$ ?
REPOS="$1"- `1 g9 n6 |0 n2 `* ?! p
REV="$2"2 N5 K; |3 D$ F- e
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! I! q$ C; ]7 Q
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache* v4 F, y" [: N! H5 k: J

  1. 2 [2 C( v; y3 o/ L1 M
  2. #!/bin/sh
    0 P$ i0 `! b2 Q5 U2 _
  3. export LAND="zh_CN.UTF-8"
    6 A7 Y$ }( k1 C- D2 X) R& W- Q
  4. REPOS="$1"4 J: ~+ B6 p4 {, g
  5. REV="$2"
    / q% I* p4 h/ K( z9 K+ ~9 u: h; J
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ N* P) M! W* c
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
* z  r( Z1 o% P
/ v# _9 w3 f7 p9 q
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
1 \* P) p3 Q4 l  B/ g) S3 M" Gcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit& d6 s1 Q4 a9 H! _' n2 h
9 X& y! R: U" l& \
  1. REPOS="$1"- f$ \) l$ ]8 I7 Y' h
  2. REV="$2"- ~& \% X( L+ a# R& k
  3. TXN_NAME="$3"3 d: D3 B* i4 y
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". v8 q% u2 Y& m5 m2 O$ [* @
  5. MESSAGE="$(svnlook log $REPOS)"$ M% G6 ?% ]5 W0 ~( k
  6. SVN_PATH=/usr/bin/svn5 n, o- p* [2 T+ o  m
  7. WEB_PATH=/usr/share/nginx/html/ssyleo/ o% o1 I. u  v1 b
  8. mkdir -p /var/log/svnlog
      ]( A9 c3 j# m* x" A
  9. touch /var/log/svnlog/ssyleo_update.log' O0 I# {$ g. e3 Q8 l0 c
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log; ]7 I" W0 ?+ z0 {3 x
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH8 G6 g( P$ ~/ J7 V$ V9 H4 k
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    & T0 u' B6 m4 E) z( ^
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ( L* h1 a2 Q& n6 T5 @3 V7 e4 b
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

1 z# h6 |" [: T5 K/ A! R5 e# l
  b$ |3 O: \5 Z. Q% i4 y$ E& w- p
  1. #!/bin/sh
      J3 S( b4 O5 W* g+ s
  2. #设定环境变量,如果没有设定可能会出现update报错
    5 [, s; V0 I" Q5 K5 X4 a
  3. export LANG=zh_CN.UTF-8
    ! r+ Z* u' [0 A: n
  4. REPOS="$1"5 F- H5 E4 b9 K; W2 J
  5. REV="$2": T8 s; B$ ]8 O8 \# N
  6. SVN_PATH=/usr/bin/svn
    6 o) S& |. f6 S! P% \6 c1 u6 ]5 `
  7. WEB_PATH=/web/project/ Q) X$ C3 q% F9 J6 Q. A
  8. LOG_PATH=/tmp/svn_update.log
    ( O7 c8 l8 Q, X! p* l, ?# J
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache0 M/ i, v4 v+ m
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    & v( }1 q" f" }2 W8 L6 e
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH* C; J" \" A& o, M7 v+ W' D
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% y$ k& k5 q% f9 D
  13. chown -R www:www $WEB_PATH
复制代码
2 S, X. o# C- l) \4 p  t
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:38 , Processed in 0.056878 second(s), 19 queries .

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