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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介0 P' P/ r& ^* M( j0 {
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)# f. v' u: y4 n' d) ]/ A* H
1.准备工作
  \$ E: N# h, w" M* U* F9 G2 Q4 o一台centos7 服务器 一台 客户端
2 y8 f& j1 H! w. O  N+ e/ \————————————————( m9 g$ \, e) b" T$ R
1、验证是否安装了SVN1 D7 h1 F) H5 g

6 @4 F7 N- e# r( k( G命令: # rpm -qa subversion
# G' o: P" v0 p3 D# u) b0 Y; c( z; a$ d$ q" B7 D2 y
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_642 f) d! I7 P7 a+ U3 o

: w# [7 Q, X* _. H) n/ v$ F否则,空白/ W, J9 m3 q. W% f( u6 L
4 w$ [& v4 e! A/ F0 ^
2、安装SVN的命令
- ]! ~1 G/ U9 h& F# A# Z# g% K# c+ p% D
# yum -y install subversion# A7 m! B4 O5 M5 B
! ^- q4 _4 w+ E- k/ U( E" b3 \
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录: W2 I- p* C: F( F) y
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了1 E4 i$ `. f# V8 G& I
  q8 M9 A3 P. A9 E( e9 a2 q
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置+ h( }. ^2 V6 x
$ Q! w- |; `& `4 J. X' s
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
- N: a! U0 H/ t; E% Z  K& r6 H9 l  d

6 x- i4 S. j! W# p) f# X7 n9 `5 i首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
+ w/ d& d: J" r2 p
) _1 p( y# m. c& P0 b  M+ I5 p) [# password-db = passwd  Y3 f' {$ B% r; s6 ^+ O3 }* ]
1 F# U; y" y& R# R: J9 S
# authz-db = authz1 b; O$ L* }5 c+ F; _

2 k: ~- J$ H+ M1 [$ {' x) L0 j! }" ^. k. O4 P
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
9 r1 S% l( x) d7 i
0 J2 K0 B9 _* M( K! G& `登录名=密码
: i% X! g2 P' Q5 I6 ^
6 X  D* L1 h. {+ L5 L6 w$ ?- B3 ouser=1234564 _2 P( w7 J+ c2 [0 y

  I+ ~* w. M7 Z% X' w+ i
2 e  _3 o0 B: I; A, C1 i1 T5 u6 y7 z最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)8 J5 m! D+ F# H! f. R$ p

  y9 n* k( r# o: V7 O# * = r6 w" Z* x7 E4 f+ Q7 t; Y

8 b6 A" h- z$ d[/]* R, ]+ P, E  {9 N
7 u: y3 J0 ~8 e; C; ~
root=rw
% q- e6 t0 N5 K& E3 F3 j: G( T1 V* c( m1 j8 T
这是用户的配置就完成了
: h8 M* R- |7 d3 W; s4 C
4 S8 G8 y7 D4 j% `, k/ D+ D接下来我们就需要开启svn svnserve -d -r /home/svn/blog 0 s0 V& \7 S9 {8 G! x
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo2 z' A' v. s+ r3 G! D# \1 G& p

; Q. v3 f! l: Y5 H( P使用此命令开启svn 根据自己设置的目录自行更改2 p  D% V$ ~9 U  X) J! Y
; [  r& u. [% _
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
  O  [/ u) A9 n6 ]2 q0 a1 [& W  J8 z2 `* r2 C- w( M7 E

& ~& M0 D3 C' ^6 q6 Nwin下载svn工具
$ ?0 K) ~' y. U( f: M5 B1 F. ~) O$ W9 ?2 l
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了( {, x2 d. g. s
3 \1 h( e" t5 G/ M7 J7 ^# F* Y; k

' ^, b1 U, n: z, [) ~重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码  Q" z7 `: \: i- ?
输入你的svn地址 地址请根据自己的设置自行更改
* R+ k% Z! V2 w9 D1 W/ U; [
7 M( b8 u$ M" \0 x( @; H  H. M: h$ a# y8 W+ ]4 E+ f
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
6 f6 Q5 M- h1 t: m- t5 u
+ s' j+ \) U1 o" R% I# v$ A2 L& V  @5 T2 Y! B4 S" J
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
& l- f. d$ `' }# M( n4 }" k& M' I" n) y7 h6 W

3 j# k. Z4 I) O4 H' y0 ]2 a) O7 N1 u/ g  j# r. P/ U( f
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
$ R6 u  c3 h! B) M) N# ~5 ]/ e
这时我们保存在版本库的代码就会被同步到网站根目录0 j1 {2 B' w. R$ z" e3 q

- j1 p! E$ x# l/ S2 o! l
; b6 _% ]; ~- Z
* {$ A! c4 [6 S. m4 h# ?4 p0 w& U4 l3 I

3 a* Q" l% t" h' t4 w* Y0 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh, L/ j( ~! y% p& j0 g: N( ?7 z
export LAND="zh_CN.UTF-8"/ ~' n; l4 E  a; [1 G' w) U
REPOS="$1"* _0 c# |" M- E0 C
REV="$2"4 |( a& v8 ^/ L: t
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
2 |2 T# a, B, s1 |4 Z; Psvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ u$ k: @+ [8 y

  1. ) ^7 \: E$ w$ e, j
  2. #!/bin/sh9 M$ x3 E! h4 t5 A! T! j
  3. export LAND="zh_CN.UTF-8"$ ~( V. P8 S5 K$ i6 b
  4. REPOS="$1": T$ D7 l+ i0 E4 S( s
  5. REV="$2". C) e( Q+ U$ I  H  ?' |; @% k8 E
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# s1 C( ], }: i2 q
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

/ U$ d5 Q, o8 n7 a
$ [# g- y% O$ O) c' f
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录0 D, T* k6 Y* |' E/ d0 G1 Z& h- S3 Q
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 ]* {3 F, ~+ d5 O4 O' B
# y+ i/ a; g% f  g2 e. O
  1. REPOS="$1"
    + n9 x  Q3 W7 u$ [
  2. REV="$2", l3 x  [* C3 G2 }+ z
  3. TXN_NAME="$3"! A' `" k7 ~2 j% p1 d
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"7 [/ W  k& H% z! A
  5. MESSAGE="$(svnlook log $REPOS)"
    5 `; K' B* [& p
  6. SVN_PATH=/usr/bin/svn
    % ~* G( `0 t# E: w) A3 x) O+ `+ t
  7. WEB_PATH=/usr/share/nginx/html/ssyleo0 r; y$ K! d7 r! d2 ~# _& m
  8. mkdir -p /var/log/svnlog" a8 i  R  a1 I- h( m- g
  9. touch /var/log/svnlog/ssyleo_update.log
    " N; o- M& y& X) c) C( `" }
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log2 d# _5 ^2 r0 Z" |2 F( P2 u
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH" ], f) H' t8 F2 J. m
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 [7 |" B: r: Q, S6 L
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    : O2 P$ {6 |6 ^8 w0 U) O2 U
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
% z( v# P1 }' u8 s5 j: _$ A1 T

" Z$ O! ^& c5 c3 h2 [8 Y
  1. #!/bin/sh
    ) ?1 R3 e- j: k- R4 B
  2. #设定环境变量,如果没有设定可能会出现update报错9 b$ H( A1 Z3 A/ G1 s* ^2 ?" r1 U" K
  3. export LANG=zh_CN.UTF-8
    ; K, R8 S5 I8 x% h3 s
  4. REPOS="$1"- Q; s5 ^, R& m7 U( _
  5. REV="$2"
    8 k& _5 ^8 D1 u! w" n; A  T2 s
  6. SVN_PATH=/usr/bin/svn
    # t/ k/ q0 C2 ~
  7. WEB_PATH=/web/project
    5 ]3 p, D; o9 X. _  `
  8. LOG_PATH=/tmp/svn_update.log
    0 o/ m8 g) l2 y6 V( k" L
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    * s$ R! r. E# M% M! \/ U
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* n7 I- h' n( t: Y2 |
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    4 m; L$ @4 j8 ^5 m2 L& ~* [7 k/ I
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ! P! {7 ]$ u% U
  13. chown -R www:www $WEB_PATH
复制代码
6 A1 o$ [+ t# N% z" ?8 F# h+ g
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-4 07:20 , Processed in 0.123122 second(s), 19 queries .

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