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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
/ X- k5 V+ X6 r( n: c. V$ SSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)4 `1 g$ N) b1 \" Y
1.准备工作8 D; A" T. D7 i" A
一台centos7 服务器 一台 客户端
5 V( ^. L( @5 Y5 Y1 K————————————————
+ U# _2 g/ n/ C5 [1、验证是否安装了SVN
9 a4 d( h7 I* a# t& H/ S1 f: o) e5 X3 m2 A
命令: # rpm -qa subversion' j8 B, x$ V7 F% q, b8 x
" K+ v4 c0 M+ E
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
8 }6 l3 n/ O2 m, _) \! A0 k# O
( H9 W9 x# ?5 n3 w4 [) Y& W, k0 g否则,空白. N* @' a3 ?4 |4 ^9 P
$ h. T  o8 ^8 i4 L/ j
2、安装SVN的命令
1 X2 @- A+ M/ e1 t) Q* L& J/ i: Z* p9 Z* W
# yum -y install subversion4 J$ R) T; B1 j) i; l

$ E9 K1 M8 J+ ~  r, l5 a, E接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
! h! ^. L. P2 Z3 a0 r创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
9 }! C& S" m% Q% ?2 u0 w  n
" s/ {6 U+ o5 Z3 N然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
/ X$ s, S: i: e8 F# b' d+ m; N% E) M. V4 h( @' L
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
& K4 b' v7 K( m+ X* [# }
- _$ M) E4 ?9 K1 V. e2 K" V, H! n( j! A  k/ j
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格/ T% G% Y! R" \. G

3 V: w3 ^% i7 O/ S, M4 w; u# password-db = passwd9 h5 g) ~% t/ ]6 a0 ^) b0 P6 ~
* L- U0 Z! W) V1 a5 ~1 I
# authz-db = authz! l; P$ \8 x; ~& u7 `) ]

9 ^" k; Q) {! x& d1 ?, t( d: C5 A' q8 ~
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效* ^7 v/ v, k+ f; V+ Y+ K& Q
1 m  G; P5 |! J
登录名=密码
# ^, |3 Q- w/ P0 _" t3 D
" r! p" c# Q% \user=123456; D% _$ d$ l* E3 E* w
# `, L( d- P4 t/ e. V. e) g3 _

( N; ]/ a) s$ i2 L) L: s, F+ j最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
& X4 s; ~7 O8 _& J0 C. Y6 x$ x* I) n- E$ o# i, ?7 u
# * = r8 T: P& W5 P2 j" ]+ h

  F" d: V" d- B3 a[/]& ~0 \6 @  z( I
3 E/ g& U9 \$ b' c  z4 k
root=rw3 ]9 y  I2 q6 g$ |9 O$ {; Q

% i- m6 C$ a' y- [+ f; l这是用户的配置就完成了8 ^! Z& ~, Y) \  F2 g) X
4 K9 z* q" P. F# \
接下来我们就需要开启svn svnserve -d -r /home/svn/blog : Z* y$ q- r2 T4 p& ?2 c
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
( B- Z0 l* u, K2 {4 B
" x% S5 [/ ?% D: h, r使用此命令开启svn 根据自己设置的目录自行更改! |9 ~" E7 ?) G" m
; ^5 ]& G8 B2 @8 K- Y2 _/ ?! [
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了1 \" ?% ~) T7 }9 {8 W

1 @" d, P$ P) `# R: K: b" d
9 C+ S) M( a+ d) p! ^% k) g, Swin下载svn工具
( U# b0 G9 w# k
, l  C; K7 G0 K7 w接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
3 h3 E5 w3 z% d# F  D, L8 q+ l0 s& T

+ p! o+ q3 J6 S) N+ d* w/ @8 ], v' U! b# z3 e重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码$ y: `6 Y/ z5 W' `. c" i: ^6 S
输入你的svn地址 地址请根据自己的设置自行更改  s/ [: J2 i0 D0 u5 _
/ L  j) G8 `3 F

8 F6 d% g! I+ C* z. g然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
$ r2 C9 p2 `3 `1 j! d6 W+ @0 y, x% w) [) @4 O( y+ i
4 ^- c' S( I/ O3 d; }/ `; R7 q& T
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
$ c) I+ d. B! {2 ~7 ?0 c& Z1 }( {! V6 M) G
. `- U# e% Y: ]# M! o2 d
: H. h8 u: _4 T: @- N& H3 i1 d  {+ i
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
) v  o( z$ R( x3 R# ~
7 Q' |* u$ r4 |3 C/ W5 O, w7 B这时我们保存在版本库的代码就会被同步到网站根目录0 T& N1 X6 t! e* ~& I
+ F: E9 w% G4 A; w$ \5 G; M4 ]! F

/ x! B/ b# _9 |3 Q) k$ `) d/ K: W7 @5 n2 k
( ?4 U" m2 C8 j

4 z8 z- k1 ?) ~! a4 ^/ z+ [" |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
- o4 H& r/ ^% {4 d6 a9 q6 mcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit  R% c# W1 H4 b5 Y- W- E5 _

5 a  P! N/ a8 \) `. s3 C& u0 z) F
  1. REPOS="$1"# K0 [+ j5 ]$ q; f. y2 Y$ w% P
  2. REV="$2"6 {, y% E- ^7 |% d
  3. TXN_NAME="$3"' k  ~! Z! Y  |5 L1 d) `  W
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"3 i6 d) w7 ]5 S9 C3 F
  5. MESSAGE="$(svnlook log $REPOS)"- h% r$ X1 G. {( j
  6. SVN_PATH=/usr/bin/svn" S6 m" k% \7 r6 m0 A0 }
  7. WEB_PATH=/usr/share/nginx/html/ssyleo% e. T1 V2 ?0 u% [2 R
  8. mkdir -p /var/log/svnlog
    ! N2 B& U2 r7 {% x" b
  9. touch /var/log/svnlog/ssyleo_update.log! O  m3 q9 `& Q6 @& }3 ~
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log6 N3 S/ Y$ W2 y. S0 r5 p
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    0 H2 `+ N# _0 B9 O5 W; m' d
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH2 C$ L2 ?( |/ `; D5 _  D
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
      ^/ @0 E2 r/ _
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ a& s- @2 @" v! T! ~
9 J5 l4 ]) y( R* j/ V- d9 U8 J
  1. #!/bin/sh4 D/ p2 U; O- Q/ Y
  2. #设定环境变量,如果没有设定可能会出现update报错. s' `0 Y; F- E, W+ y4 V, s
  3. export LANG=zh_CN.UTF-8" \. M0 h3 n" S" r
  4. REPOS="$1"
    / o3 b4 _& k: l/ k
  5. REV="$2"2 \# q  ~) \8 l6 `/ r
  6. SVN_PATH=/usr/bin/svn
    ! `3 V4 W& w1 a0 B& ?3 i) I+ l
  7. WEB_PATH=/web/project
    / @" R4 D6 V: Z8 W/ \
  8. LOG_PATH=/tmp/svn_update.log8 R8 j6 `8 \  A" }
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache. `+ p6 n7 G$ ~9 H
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH6 E) M. ^4 j4 Y" ?' k
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    / ~" N) Z; g! ^+ `
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% n# h- x1 D6 u1 c- e) ?
  13. chown -R www:www $WEB_PATH
复制代码
5 r( O. `) d- t7 n+ ?
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 u( a! I- I6 B* W4 l- {
export LAND="zh_CN.UTF-8"+ }# L: u1 g& T) n& N
REPOS="$1"( }* u4 @# V7 z7 C
REV="$2"8 o& l) i9 x8 n) ~% o/ e
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; g3 W* X+ s/ M# T" L+ A2 i5 [
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
$ t3 ]$ T# J% @9 z

  1. ( X. T# |7 v5 c8 X
  2. #!/bin/sh
    6 W9 e6 z7 M3 b
  3. export LAND="zh_CN.UTF-8"0 F4 r, \' }6 J8 d2 c  b
  4. REPOS="$1". [; v/ p7 c6 o, Y9 O/ h: B9 R
  5. REV="$2"
    7 v3 I! G) x5 U3 T6 c, @
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ) G* d+ N: S7 x8 i& O# L+ f
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
( Y' I+ D+ ~/ y1 k
# v7 I& J( r+ p7 _
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:31 , Processed in 0.070720 second(s), 18 queries .

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