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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
/ t8 S  v! C7 x. B5 eSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
# k/ v* G3 _( l: o% b1.准备工作7 I: ]8 g) L) a  t' }8 i
一台centos7 服务器 一台 客户端7 K8 d$ ^. X# u5 z9 w/ ~
————————————————
( A8 x5 i3 G& i2 |. ]7 q9 b/ t5 J1、验证是否安装了SVN
5 v. O# m+ R% q* t, |- L& q# W. e! m5 s4 L
命令: # rpm -qa subversion! P! p, R6 [( m5 N# `2 S; o
2 R; _8 j7 J5 R+ A; q
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
( k. p1 \- e1 B* p7 R! t! f  Q8 z6 N2 t4 v, N; D: q
否则,空白% z" r# N: ]: M- i$ r+ J

( m7 B9 Y9 \* g1 m7 w; q: I2、安装SVN的命令
0 L0 `/ k! t1 R, ~# q# [5 y
6 w/ M$ E5 m0 Y: Y# yum -y install subversion
' M" K- W; ~1 G8 p9 A9 [
( D. N6 g- w- I接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录& J2 [4 G. {9 h5 W7 C5 {
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
8 ^8 O+ n4 `( L( s* r
+ [. J0 k5 A. Y* ]然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
/ O* i* B1 d# j/ c( q
! m; g- P7 z. u5 z3 tsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)7 l3 a! J4 A* o4 U7 ~
6 ]4 I- h5 _. a" m" a

: Z9 i6 Q, s- d( _% ?- J4 y首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
( y  ^* ~/ ~! d- C; h' f+ X- j& d  d+ U
& E$ ^; @6 \; y, J6 t  V# password-db = passwd
, g) j) h* V; q' D" c4 M: j" w
" {. D. H& m' R7 c9 y0 z# authz-db = authz2 J% W/ n& c) I# q6 g
' t( K8 s1 S- Y8 _: @9 i4 K) q; _4 s; M

! M9 b; J9 T5 V然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效8 P) D" m0 ^- m: J- k/ m+ m

) w/ y) q  o& Q( i; k登录名=密码0 i1 S8 x0 P3 ?8 }. x! U2 _

$ X, Q0 }9 z# P$ M; ^7 auser=123456
/ P4 e6 s, t4 a! F$ w! H8 e5 n" y( }3 B( l: o
* S/ l, ]% n+ S) V0 l( l0 Q/ i. ~
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
) M  {, G. I6 a* Z2 M6 l8 r9 m: [" M$ {" U
# * = r
9 Z# G7 D8 E# l% F. Q) l  p- Q( c) M
. i3 K# n% R4 G& p; j. ~! j[/]
3 _5 C6 S4 Z1 p( O5 i
' ]4 x' Q% g  Z6 Oroot=rw
4 v  f8 f* f! |! Y
" \- M  s9 x& n9 ?, ^1 k这是用户的配置就完成了% g/ |1 h/ g( Y; T, l

+ d& f) j8 ~, Q& H' z4 V1 p接下来我们就需要开启svn svnserve -d -r /home/svn/blog   f; N2 c( P9 `* W' K
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo; x2 E* w8 a  b" |" Z7 G, N3 Q. \
2 e! `( h- ]- d& b
使用此命令开启svn 根据自己设置的目录自行更改
7 ?0 s/ E& @& j% S7 p$ J/ ~2 I5 R3 @" t7 s: }* m) a
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了) U& r7 i7 F4 Z& n- K
  z$ S& k# Q$ e6 n
6 U- i/ |( n9 Z. g) O7 ^0 }
win下载svn工具
  E; ^2 p$ C" T- M  x# o' O+ K0 j8 U( [+ ^: s$ p# B' H+ K/ E
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- a0 w, r2 g) {* [
- ^& r0 U* t7 Q* B4 x5 Z6 T

4 X" I+ w5 m1 v0 j4 \重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
$ `* u( ~2 V: `9 W输入你的svn地址 地址请根据自己的设置自行更改3 ^8 H. }/ Q, r+ t
+ ~6 }" H& @' R

8 X- c; n6 h. W( G! I然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
- Z6 @8 I& ^  T$ w& B# Y" `5 w1 U2 C  f8 r" L7 n: E1 C

: X# X, E) w5 q3 q2 l9 S(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
+ }2 V2 p( w+ b4 [$ K1 l! a4 B4 p+ }) i2 U

3 ]3 E5 P& v! F2 S
+ v3 |5 M1 m! ^  z; U可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
* m. c- `2 c) ]  W4 O5 H
: a/ O( g  }* ^9 S( e+ K  A2 @这时我们保存在版本库的代码就会被同步到网站根目录, R8 M) `6 d/ u' U7 H; y
# m  G( l' T6 y. _$ S0 A& w* @
  n& J6 \+ m7 s% y# \3 E
: m& p7 v8 |$ P' e* p: A- P
, w; F1 t+ I# N: C$ J- f+ d2 |

( e" T" E# \& E' M3 `4 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
4 ?2 |8 L  y2 I) A- Ycp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit& r! K5 V2 D- b* Z3 |3 c6 M( G
2 E. w; R8 ~. V1 d
  1. REPOS="$1"
    % n7 H2 U4 C; l# U% W& m) ^% w
  2. REV="$2"
    3 F* x) U1 I% T" ~; n& [6 R! @
  3. TXN_NAME="$3"
    # ]- `& K" k) B" m
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"0 N9 F8 ?3 i# |7 O  @4 R7 e4 ~+ h
  5. MESSAGE="$(svnlook log $REPOS)"
    ) b1 n$ ?' _6 h8 ]+ g, L, g
  6. SVN_PATH=/usr/bin/svn
    8 I! {) B  O2 Z! G, S, }) }$ q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    4 ?0 R2 H+ }5 J4 E: c
  8. mkdir -p /var/log/svnlog
    + ^5 C; D& h- R/ J
  9. touch /var/log/svnlog/ssyleo_update.log
    1 r1 P! m% M- @0 v* j5 O7 y
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log& R2 K0 p4 L( x! o
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    % Y1 Z" K1 w/ z5 P
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    $ f, ~+ A! A% ~" m
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    5 i" V: @) s7 H+ g: d3 h  C- q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

/ J  O, {. {( x% o# ?7 r. C
0 `1 y/ l- ]/ a; v
  1. #!/bin/sh1 Q- N: u7 T6 o2 K
  2. #设定环境变量,如果没有设定可能会出现update报错) O" u" F' |9 Q3 p/ v
  3. export LANG=zh_CN.UTF-8- U2 i/ f" a: G7 i  @
  4. REPOS="$1"5 e0 G; y: U$ t+ J# B
  5. REV="$2"
    , x( _( y$ i, F8 E, E
  6. SVN_PATH=/usr/bin/svn+ Y- |7 C6 @( _
  7. WEB_PATH=/web/project# h5 W( H3 N8 w& f1 Q% C
  8. LOG_PATH=/tmp/svn_update.log7 i- o. e0 z0 N
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache: M0 S) T; r2 ~/ q9 L& ]
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH9 k0 i7 p7 t' F+ [9 ^
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH: j7 E, Z9 ]) B
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH9 S& _9 b/ e& d6 N1 d' C
  13. chown -R www:www $WEB_PATH
复制代码
$ j) ?5 L5 V; f* t% k
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
6 K5 |* R/ V$ L3 V! w% n# Jexport LAND="zh_CN.UTF-8"" |; [% w* o0 X! K3 T4 L# j: U
REPOS="$1"
4 ?8 o) A8 m. |' v1 l0 xREV="$2"/ Z/ U3 \6 l6 i) [' T9 v) }
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache+ S! T; W/ S! t0 X
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 G+ v/ N1 |" F9 B. U5 y
  1. - a& z7 d. B1 Z3 q; L
  2. #!/bin/sh
    * p$ \+ I$ k  B. S7 j& y1 V
  3. export LAND="zh_CN.UTF-8"8 [+ q, T4 V, A
  4. REPOS="$1"1 ?: ?0 O' W7 e. u7 d
  5. REV="$2"
    * p% b& J% m* r4 c
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- `8 m, B. R# }
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
" J! h* {! h, p, \$ h7 N

. S1 @* o& a4 u  \# ]: J
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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