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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
; j! N6 ]% }6 n+ E) {: ^$ S) qSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
$ X: m. E$ }3 j' u* g3 p, j1.准备工作
( i" ?9 q! P- I3 A# a) F, |& }一台centos7 服务器 一台 客户端
& x# e' D9 [0 l4 w. c————————————————3 t8 I9 F) J& X5 v' P
1、验证是否安装了SVN
  l0 k) _, v2 |8 z) v3 k( d
) D1 `  K- f) u: h1 b+ q- B命令: # rpm -qa subversion! X) p- ^- H! v, X/ V$ I3 @1 Q

: F9 @8 |- Q( W如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64$ @) `+ t9 A- K: Q3 ^
3 h  H3 i9 l* i& x2 c. b& L
否则,空白+ B( F1 i5 U( A& @6 y7 T) X. I

8 G# H5 Q) k. z7 u  n$ N/ _. |2、安装SVN的命令7 L# f9 l3 k; e( J$ l1 y& h

( S4 D/ i* D$ y# yum -y install subversion
# Q; ?: @+ X7 z; {1 f
  `: n* @/ V6 E接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
2 p% Z6 M% f, x8 i! u4 N5 a创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了- z9 _+ s' O" z: \! @! q
+ @7 e% ~4 G8 @$ O
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置: X2 Q& o. S9 H% W, K" ~

7 Z' r: N- e! ?( F5 O' {4 c$ Nsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
* |0 {# v/ a# E1 {! p
5 I6 C4 M$ y3 |% l; T, c4 E
8 ^% M+ s/ B$ i  D首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
# W: [+ C8 W; ^2 L
+ k* Q3 ^; t" U! g9 v# password-db = passwd
" {: U5 f+ N0 r9 t# Y! Z8 ~6 s5 Z# D: W, U
# authz-db = authz
: e: p# E5 N7 i2 v- B) i; L0 O  D; b( ^4 I
6 i6 u5 A% U% g; H
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
" B3 @4 w( x  E0 ~! e/ y% E& E, p% L& P7 m9 x% k2 p
登录名=密码
* w' |- ?; b; f( D7 Y; A/ x! ^
8 g0 [" D& P8 [user=123456& s! q1 J1 ~/ S) Z5 }8 m
5 i2 i  z$ o  L& d( n2 A( S
7 V' N& v0 F  z" ^" {
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
. d( M/ e$ a' b( T. u' x+ l0 a* A9 A; G/ `# J! o
# * = r
) s  X2 I( c: n2 O- B, o  P* B0 J- h1 I2 U
[/]' I, }/ m% D# u+ [2 f) f
0 F$ n$ O5 Z) h  n% ]7 W
root=rw6 v3 Y. }( _) ^; I+ h% e- j

6 ~" ]2 X8 m. s0 j* t' B3 Q, i& a这是用户的配置就完成了" Z$ M/ L/ ]6 t3 {4 J7 m+ c# L& c
* C& H0 |& k( T' J
接下来我们就需要开启svn svnserve -d -r /home/svn/blog & D( @6 a& J$ S0 }0 y
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
  }- K6 }1 L$ V! N2 U& x
/ M* G: O% g% u7 u3 [- y使用此命令开启svn 根据自己设置的目录自行更改
' \4 c' |7 Q* \! q& j- x1 P2 r; I  J4 ^- I( l' X; P
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
' }7 s2 q3 _/ f7 s$ U
+ o2 O9 `0 z; e% w* `' a. a$ S, W1 i
win下载svn工具- F2 a# n$ U2 p- Z7 K! {
& `, Q4 V$ w6 a" G0 b' N- R
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了2 D2 y& q7 b) O" ]& p, s' ]

4 ]( }) o* n; Z$ {$ @5 k& t% z3 J5 ^& z! t* J$ ^  k
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
; [3 D/ U9 q5 F: R0 A输入你的svn地址 地址请根据自己的设置自行更改; ]& M' o  }2 o3 W* T$ \

1 p6 P4 j; Z2 ~: y) ^5 M% D. @) L
  K  `1 K# q8 c/ E; q然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
! |, u% r/ {( X
" L9 S5 \+ R4 A
2 a, o" V& F. R7 C(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
3 W: C1 e- ~2 C( c4 H, r" l& T9 X$ s& d& j$ e

* _2 {: k; I8 F: J. e' p+ f3 Q1 o4 u7 z: K& }3 {& d: g9 L
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 i' {  W( L3 u, g4 {' j/ W3 s* X5 H: D1 B0 x$ c9 U# r) o
这时我们保存在版本库的代码就会被同步到网站根目录
5 K8 ]" k* ]- g. p! U, W9 u/ j5 D1 j4 O' B# |: m

8 `8 g8 N  M# G3 {5 J. `! J- b7 Z( T: e" P
" W3 c1 U5 P- A6 W4 p* K
6 f1 r' T% M6 J' L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
* H- E3 I9 p5 V  ]cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
6 c7 B$ z( C0 y% O( f1 w6 r0 F. A' ~# G9 _$ k/ H& O
  1. REPOS="$1"9 [$ B8 h! |+ O- m. y1 W
  2. REV="$2"5 B( D( P2 d+ N& i' \/ C2 d
  3. TXN_NAME="$3"9 E+ _6 q+ X8 X* k
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    1 B! Y+ r  E: F. U/ |$ K
  5. MESSAGE="$(svnlook log $REPOS)"( _% x' c3 a/ U9 K: m* \9 D3 T
  6. SVN_PATH=/usr/bin/svn
    ' [! O+ Q; y. w/ s! g+ a% B6 `
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    + n) y. a. T1 J" U& P
  8. mkdir -p /var/log/svnlog
    . n. S0 L) I* J/ l7 }
  9. touch /var/log/svnlog/ssyleo_update.log
    0 k. F5 @# ~4 i5 G
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    , ^0 y4 l2 H" K7 y3 k1 I8 E' k
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH3 k, k+ I0 v9 W, s* ~- f
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH5 ^: g7 v) B8 F3 n9 S, R
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH4 R; u9 |% E) j# C9 `8 B6 J
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
( @3 C/ y" v8 b9 N- \- `  L1 z

2 z& S7 }2 b7 T1 g; n* }, j
  1. #!/bin/sh
    5 H3 r0 A  L9 o6 C
  2. #设定环境变量,如果没有设定可能会出现update报错0 F$ z" B  V! G! U2 X& s/ Y3 M0 S
  3. export LANG=zh_CN.UTF-85 ^/ d' y' S' q, W3 C8 |
  4. REPOS="$1"0 a& K* p0 i' b1 F" U5 @2 g
  5. REV="$2"
    * x( [+ H6 t: A9 o3 _- C
  6. SVN_PATH=/usr/bin/svn- s  M+ I! o+ R6 n* P  j) e
  7. WEB_PATH=/web/project
    # t1 a/ y' K, [( c
  8. LOG_PATH=/tmp/svn_update.log
    6 @& X  {# G! U1 V% v
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    0 c: i1 e, D! P+ Z" G9 o
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH5 _, R: `, t, d  `4 ?- h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH+ M) X( U7 P3 }+ H# B! ~
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    5 ^% G% K) s/ P- K9 ?3 i$ F0 t
  13. chown -R www:www $WEB_PATH
复制代码

: t8 C/ v9 X- o5 x  t
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
. n- P! R9 o5 |2 Lexport LAND="zh_CN.UTF-8"
6 W# A% T$ l6 i. AREPOS="$1"
3 z4 e" p$ S) w5 }8 k$ H# Y8 h& xREV="$2"
, Y, [6 K0 U& `# M+ j' B6 fsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) b2 j9 o+ E5 A3 I9 g4 msvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache* I0 x$ z6 l  e9 x5 t9 f
  1. 0 _, R* _! R- H2 x
  2. #!/bin/sh
    ; m+ y- m+ p' O; }) k
  3. export LAND="zh_CN.UTF-8"
    ' T* @* h! w2 }" E
  4. REPOS="$1"( I6 @# m- p4 x5 O, |; I, b2 s
  5. REV="$2"7 T9 ]1 x5 r3 i
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; y, _0 g$ O6 s6 x9 w1 w
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

; h( ]9 e& c7 l
2 L. z- p$ g+ E$ T: ^6 z5 F; b
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 00:14 , Processed in 0.057185 second(s), 18 queries .

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