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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介( `* H3 i  \  N
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
. j" Y& t' m, _% w' G1.准备工作3 R, I* g" v' [2 q  c" Y$ [. b. o6 P
一台centos7 服务器 一台 客户端
1 \, t9 D, ?' O3 p* t1 `3 U) Z3 V————————————————; V2 @% X9 \- w
1、验证是否安装了SVN. p. B7 _1 x* ~

: a0 @  }  w  @/ \: P命令: # rpm -qa subversion5 u9 y* ~  I+ k  {- G# l: m) w

* \8 P- h; H+ I如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
$ B1 }' h3 f% m# F
! p8 j- q. t8 |; l2 {6 }- j否则,空白- t' W  `( ]5 D" H4 J
1 n% R( \: N  M3 a* `
2、安装SVN的命令  c% o" l+ G+ H* u2 N. s! G" ^, O
+ i8 Z! A: n1 F7 ~
# yum -y install subversion
# f0 @6 I8 B  X7 `3 M5 ]. r6 A: f. {' \% {
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
$ c& t6 p( O: g! S3 ]. D: Q创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了) r2 [' Z& M1 N. D5 g
+ t/ w- S8 a$ E8 h% V+ j
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
" ^2 i6 D, G: _! t
, p, e2 D6 F" ]" msvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
5 o% p' ?4 {& P$ W- e4 k* ]
/ B) j  s3 c3 _, v+ i$ Z3 \+ ?& K
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格* j4 r  C* ^2 X' M- d; c, \
7 C% U0 _; W& `- Q
# password-db = passwd/ p: }, C$ G: n+ d

4 ^  y& z6 g0 C1 j# authz-db = authz' R5 F! b8 u2 a" x6 e( X' O( a

. y3 F* L* P1 M* {3 Q* r0 A9 X6 D' y& I4 T" v+ h
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ X( q  y2 f4 e8 \
; [/ s% q8 K! f
登录名=密码  N: T9 w8 I) X  |0 K$ c4 C- Y
# d$ H; G0 H5 }' ?$ `& p! [% L' @7 }% N
user=1234566 w2 y) R  X+ Y4 {2 O5 C' v

# ]# o. h! T1 b6 `7 l  N1 Q
$ |! `9 [7 |& H9 X最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限). T" o" t+ N* r
+ F3 \  ^- X9 D$ T
# * = r8 f6 V1 x8 a( x$ m1 m4 q# x7 U, q

  E' M; u: ^7 A% G, S0 t, s[/]
( H! x2 e4 i0 U8 V: s' T6 Q. I8 @1 [0 e+ _0 d( d& A4 Y" W
root=rw- t3 ]5 w  _5 h

' u+ y  e8 M0 ~3 b2 M: ^. C这是用户的配置就完成了
  G1 j5 |6 ?8 B% n
% c- ?) K+ t9 D/ l& b. ?接下来我们就需要开启svn svnserve -d -r /home/svn/blog 5 n  g! w2 N4 R8 B" I2 P
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo: }- R- n- ^' H+ f0 m& B5 [6 M. p
- K+ U4 l: Z% |. q! j6 S
使用此命令开启svn 根据自己设置的目录自行更改
8 r4 O& ~: m$ V: o
4 {: u* Q" Y0 \" s8 C6 p, A. t使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' S+ o- r& e$ I' |6 @
9 O8 N* A& H& ]

7 e& r% q) l5 Z4 qwin下载svn工具
( y% U$ k1 J6 K0 G0 r& _
+ s% N! r/ j+ g接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
: u/ X) r" X0 J. B- {3 C6 N% S
+ z* d3 G  h5 j; H: N. q- g- B- m0 I/ |! m6 t6 u  g
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
3 ?& S1 a  x. {输入你的svn地址 地址请根据自己的设置自行更改
: U# @" A0 V: D' L  ^
5 a7 U. v. ?" f
5 M( O9 ?' G# \) z/ B. `然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了$ h# Q3 L1 A3 g+ b  X
6 l' s- k9 E9 [" t

0 A( n$ t5 o$ {/ Z" q, [(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
6 Z( s3 O2 }0 k! x2 a" n8 b9 I+ {; w) Q5 Y( }, i" s
6 I/ C+ s% F- L, g0 S2 D
( F& m9 w; A7 y" o) g
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" w) b; L0 S, Y- D  L* v. ~  Y4 X7 S2 j* J$ g2 B- O
这时我们保存在版本库的代码就会被同步到网站根目录
5 i/ x2 q, l2 s+ {& G' d* n+ V4 H8 O

6 d" p# v2 ^# l  h  }6 P5 `) @1 K6 C( S8 p2 k2 O* A+ I$ c
$ V! e( [  ?) |5 t8 y  E
- v) U( G$ z  n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
$ e3 C% G- H- s, p$ Pexport LAND="zh_CN.UTF-8"
4 z: n7 I+ h7 m6 H7 y7 FREPOS="$1"' P" `3 t3 q/ X# B$ G
REV="$2"
: I3 N, }" v- csvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 \% u2 e8 V6 @& J; I  b
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
; w% J% \7 v$ b" u8 T

  1. ) B! t  g2 `; ]$ ^5 r
  2. #!/bin/sh' x- Q. h5 e- \' ]- r1 G
  3. export LAND="zh_CN.UTF-8"6 s2 n. f- j. j# Z3 g$ x1 i3 p
  4. REPOS="$1"
    4 r4 B0 w3 c$ ^( N$ r* e! G
  5. REV="$2", o9 G, x6 v$ n8 n* P
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  e: e  V0 Y2 u( b
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
; \" c; `; p+ l7 Z1 q3 t
0 }  l! j. }, W. D5 I
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录  L8 m) o5 u3 a% ?) r
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit# @6 W, P0 h& `) X
0 h1 {* n' e6 r9 U
  1. REPOS="$1"
    9 Q7 ~9 _9 R- x8 [
  2. REV="$2"6 ?9 X' \' ?9 p" [' L$ s
  3. TXN_NAME="$3") Q' S! k3 M; Q
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    9 h5 W% Y7 T% F  q2 [
  5. MESSAGE="$(svnlook log $REPOS)"
    % v! @$ j( p& e8 n
  6. SVN_PATH=/usr/bin/svn- O8 G8 x; R( `, _: z* R
  7. WEB_PATH=/usr/share/nginx/html/ssyleo1 D' K8 A5 Y! X# T
  8. mkdir -p /var/log/svnlog
    ! j4 q+ o7 i2 W# v! d
  9. touch /var/log/svnlog/ssyleo_update.log/ E) x$ b% n# j  t/ H
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log3 H4 u/ h! T0 N+ `: e
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH+ C- |4 l1 x" x6 C2 Z* \
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    , s6 Q5 a! S; t9 T6 H2 j
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    * Q# O& f7 V  J2 c3 O0 U2 x
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
8 y  j& ^( m  _$ E

6 Q$ F" q0 z8 y! ?/ a. q
  1. #!/bin/sh
    6 z, J( o( w5 d) g) i
  2. #设定环境变量,如果没有设定可能会出现update报错0 J2 a) H; t$ `: h5 I. t
  3. export LANG=zh_CN.UTF-8. c$ a+ G% h1 M4 t7 t
  4. REPOS="$1"' F& b  O: Y6 X4 [' N$ O
  5. REV="$2"
    * ?2 r' J# L, j! P
  6. SVN_PATH=/usr/bin/svn
    ' W% D8 Y# P( f7 V
  7. WEB_PATH=/web/project
    + S3 U' s* k% n  ~6 C% q0 b+ {  f3 l. d
  8. LOG_PATH=/tmp/svn_update.log. p3 ~) j4 w( C- i' k- P
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    - g3 O8 T, [- o& J# e# a
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ! q7 r  J9 l+ U8 A( o5 s" M3 {6 j
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    : W8 m, K3 I6 A" f6 Z2 P$ y
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH8 T* V/ P& A+ |' }
  13. chown -R www:www $WEB_PATH
复制代码

' P8 _: b4 Q' o& x* z: N* V
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 05:18 , Processed in 0.048526 second(s), 19 queries .

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