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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
# G5 Y2 K3 F# \& OSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)2 [7 K! n3 {" M" j- S
1.准备工作
# ?# N( A) r1 A4 t一台centos7 服务器 一台 客户端& s; o" r  n# b. }, B) ^3 x
————————————————
% O7 ?3 @& T5 Z* C  f- ]+ I6 p4 A1、验证是否安装了SVN
$ ^, \' Y8 y1 X! p# V; s3 G$ V) d8 ^7 q* E; a
命令: # rpm -qa subversion; [) x( G+ L# W& [% q

3 K3 G, J- \) N1 K  z/ d如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64# z* Z: D; q1 S1 ?" G; s

2 t. L8 _4 h2 Q, c  G否则,空白
7 L# V% f' |( N3 E
. D) L* b; ^) i9 K5 e2、安装SVN的命令) r+ e- k) b8 ?5 u: }

6 D5 k8 R- B: Z  i# yum -y install subversion; H3 m9 i& P; m* H( o, m

6 ]  a0 S! |  ^2 l: q3 H; ?! J/ W  J" O: H接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录8 E* R- x5 ], V0 |- D
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
  ?6 p. M! E- \+ m& l4 Y. S
/ u: M9 l: v! ?$ Y. I, _; a然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
0 Q7 O' B) f- b4 \. S0 R6 I5 x: M
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)! n+ _  p* g9 v  L+ T& j
) E" ]6 y2 B- e) r/ w- d
- M6 L8 E, f7 J7 w- o
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
6 [# g) k; ~) L. W' _$ ]7 }0 w  c0 r# y8 ]. @0 x7 p
# password-db = passwd. S& R/ g3 }5 d3 z" D( q
( ?' u) k! }3 B  ?$ M, x, s
# authz-db = authz
3 T3 r5 B- o/ e8 W1 C
4 |. m$ c% U; W- g2 }" ~
" ]3 P7 A1 u5 ^+ k0 n. D3 A  a+ G/ }然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效, P! ]( s4 t  }+ P+ b) k+ y
" B4 |/ a3 M1 a3 K# F& V
登录名=密码0 A( f) U. X7 r  d+ x. a$ a
+ u7 T" K) h  X9 ]* K
user=123456
$ ?( B7 j& |) x( w9 Z& t3 g
" H8 W( k0 P" C* |" v' P9 q1 U: U: u; \! k- N* ?5 \9 @& M
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)1 g" }- B$ f, B, w% N0 r8 i

+ b7 X7 B) e$ o# |6 b0 y6 _/ c# * = r2 M' T0 @5 f9 U: X

% N- _3 F' H& B3 Y" ]! \[/]
/ [" n; A2 r' i: G  `' @0 t' B2 M
root=rw6 X5 F0 A8 j, j% C
/ j1 R% W4 I) ]6 X1 |  ?
这是用户的配置就完成了/ j6 ~4 g8 s/ L7 V: ?
' ^" c' J! g3 o- w" G2 F+ W' ]( @
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
0 b) c* L# I* k2 Xsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo9 L# U; _% r" N" @
- n0 H% P$ b! a0 ~3 l  T2 E1 e* }
使用此命令开启svn 根据自己设置的目录自行更改
' G0 `. w' ~9 @! x
4 k- {) B2 w8 I* t使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了, Q- d* k+ A' c6 B! y
7 `/ z( T4 y6 ~4 y. b, D

$ r* k, H6 I) m$ a3 hwin下载svn工具  C9 n% P( u" d2 u: `  b
! s, Y% S+ X: s, e- p: @$ `
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
* v& l! H/ }  D) t9 ]6 \/ i1 E6 n/ s
7 X% v8 T$ T& ]) s9 ?; c9 u: W! f) i# R' M' t/ t+ p3 x
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
  a$ K# Q9 V: D  v6 L7 ?8 m; j输入你的svn地址 地址请根据自己的设置自行更改5 N; y+ h; d2 v( S# q
* f; U$ Z* l' u, g+ x9 q( b
3 y' B6 G9 v% J4 _2 _: b7 R
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
& [  a$ Y$ o- ~* T" h. _+ t8 X
7 q3 |: `0 ?5 m/ ?4 g! ~
( k3 G- Q, G8 ?(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
/ H9 g* b; ?! ?' K# C4 Y, J0 V4 F2 L! k
3 {7 _5 o; v/ R' ~  j
' e& `7 k* w! {, p' [) V  U
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
' [9 W2 c; _6 }! g4 S- O+ K: L9 ^( G9 W6 n
这时我们保存在版本库的代码就会被同步到网站根目录
7 J# e4 G( C5 m6 z" {3 X% [1 f' w* c! U8 e

* I3 y) u5 }2 u; T' r! T1 B- s# E* o' u8 S# Q

! J6 A: I( B/ ?& G: `/ L+ w& X2 z# n- E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录/ f  }& k9 b, X( V
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit. N$ A( i' ^3 R2 @

- A% w1 r7 C* U7 B: Z
  1. REPOS="$1"$ P! u3 u, V0 |. _& k% K& E6 o
  2. REV="$2"% W& J/ }, j+ `% f& E% V# u
  3. TXN_NAME="$3"3 \" g' K9 b, }! w
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"+ [0 t' q, h! ?
  5. MESSAGE="$(svnlook log $REPOS)"0 n% L* W  m. d8 _: K) b2 `
  6. SVN_PATH=/usr/bin/svn" m/ I( v8 W+ d' v
  7. WEB_PATH=/usr/share/nginx/html/ssyleo! J6 G2 \5 ]8 N: v, W- Q
  8. mkdir -p /var/log/svnlog
    " |8 S; c4 ~$ N
  9. touch /var/log/svnlog/ssyleo_update.log
    & K" f+ e+ o1 I0 |" E! b6 _9 {' q9 b
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log! m& [* H. A9 Y+ X
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH+ Z' N! {" M7 V) C3 s
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    . m6 s3 Y9 h% {: Z; z5 M) a
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH- P9 P& O0 {$ R& y$ H
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

0 g# u! h2 R# y. ~7 r* R# @! B1 T/ i8 r8 E' {; {0 Y# L; q& a. ~4 }
  1. #!/bin/sh) F, f+ c) O  Z( q# e$ J9 A8 @" j
  2. #设定环境变量,如果没有设定可能会出现update报错
    0 Z' Y* F4 y6 a
  3. export LANG=zh_CN.UTF-8! I# W, u4 O8 x2 s4 G4 u- Z1 W6 h
  4. REPOS="$1"* D  l* L5 f% l, b8 F
  5. REV="$2"
    , a( [! Q" ]/ _
  6. SVN_PATH=/usr/bin/svn# Y, ~. _* J: b: Y+ j- C
  7. WEB_PATH=/web/project6 ?  l8 g6 w2 G' r- H  ]6 ?9 ?
  8. LOG_PATH=/tmp/svn_update.log
    8 m7 C. ~. ~9 f5 s( V
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ( ~  {* k( Y, v3 F3 J
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH7 A  i4 G: S9 e. c8 @& a1 m' o
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH5 F& {; C7 U; m5 k
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH# {0 ~8 p# o! q9 ?
  13. chown -R www:www $WEB_PATH
复制代码

9 L8 S, c, \) P
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
( f1 B+ Y# F/ B& W) C0 x' aexport LAND="zh_CN.UTF-8") D, o4 W, s! j. A
REPOS="$1"
) X  Q- ^! F, c% g( L5 c% p4 PREV="$2"  X: f- l/ j7 o9 U2 ^- \1 o5 _
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( @+ L# L6 I# n9 k/ q0 j) ^4 g) wsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 z2 S: d) d2 G" e

  1. 0 l" c& ~% K  g
  2. #!/bin/sh1 R5 y9 Z# o( y/ `" P% W: K
  3. export LAND="zh_CN.UTF-8"
    0 s  @0 G) s0 [# g" ~% c/ L; E! J
  4. REPOS="$1"
    ) t: I4 y. V4 Y$ W1 k0 @
  5. REV="$2"
    1 |! q2 y( ?0 @
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 Z9 r& Y2 f# c/ e( O) K0 `
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
  \' Z4 Z% P% s; E0 L2 m0 @+ H

) T% y- i2 c5 ]4 K/ D
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 14:34 , Processed in 0.082262 second(s), 19 queries .

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