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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介# j$ E! {* O/ R( r- b# d
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
8 ^, b4 R9 `$ N  {: W, \1.准备工作
7 z7 t8 T( Z/ u7 `一台centos7 服务器 一台 客户端
/ A( Q, E9 A, F————————————————
& M0 l! }& @! k5 W2 G. F1、验证是否安装了SVN
, {8 I, P* T' {* R0 c* W1 [7 s0 N  c$ g! L) L
命令: # rpm -qa subversion
; V1 Q$ F! r) E/ N: |" n
6 f; D: A8 }( k如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64! v0 G/ K. [+ W. O% Q
8 g! h5 L! g& @( h1 N7 ~! F
否则,空白( ]: C8 C% ~$ W; d

6 F1 [" L  z, \7 j( N0 }2、安装SVN的命令. O+ Q2 l+ D, B9 k( N  ]7 j' V6 L
/ }5 g: X9 m* m4 K9 p$ R/ M
# yum -y install subversion* P8 ?6 ~, o2 K/ G  z# R, V

( j2 `" |6 A6 S接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录, v5 }6 f: o- A+ X# r  t1 _# e* ~
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
5 p2 A8 t, A) D6 x
( M$ M; h  L" ?3 R6 m- k0 D) S然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置" Z0 {' f# V1 E3 {2 h4 k
$ ^% G% y2 F5 w7 [
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# b+ t1 }# H* U
# G' M7 M& G# h2 h( ?
5 X; _5 J- c1 y4 ^% O
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格9 o) {+ D" i; n% j  J

# @7 W% X2 i- D( [. o* [7 c/ m# password-db = passwd  p& ^3 x: T5 R% _( U3 l
8 I( c; w+ v3 I$ z$ ?5 e( u) Q, ]6 u
# authz-db = authz& ^5 f- p2 ^4 s1 X9 D6 G. N- W2 Q% q" b

! ^0 [) `+ h5 I# k% ]+ C% v+ D+ |! @( C" y
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
6 X- e6 r4 P* R9 \; K% W: b8 d- E6 Z  v( A0 b  h6 I) y
登录名=密码+ G* U! |' N' C2 L4 m7 O

8 ^5 j1 u) L8 ^0 e! P" quser=123456  C6 r0 t  m; C9 ?
, Q0 M3 ?2 h+ [7 y8 L, v6 {. H
* b  [. a9 P3 a- P: r
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)% ~% Y$ X! R  [. n! ^* p) @

4 f, D" M- K/ ?  X( S/ Q" a0 }# * = r+ i6 e$ Y* H' I
. a- I! t# x7 E. S% S  O
[/]7 R! L% x! }/ x8 |# O
+ `& h% |% n  ^9 {5 p$ H
root=rw
: _3 D. g/ a$ y& h' F8 j8 J6 ^: @" {) N  A% D
这是用户的配置就完成了/ B3 A8 g2 u+ l

% z7 @6 u: ^" e接下来我们就需要开启svn svnserve -d -r /home/svn/blog / K, d9 b" y" E+ F
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
& T- Z( z; L1 N( x' m) f0 Y. M; Z3 E0 B& N( E6 L/ Y
使用此命令开启svn 根据自己设置的目录自行更改
6 @$ g' ?1 A" u6 O, Q2 [& Z  R* W8 d
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
1 |1 R$ H% o. `( e, f$ W% }; j& @: [6 ^

- x; x6 M  N3 p1 A# _8 Z  K$ h* {win下载svn工具/ n6 s* ]- v& t7 O
0 t0 \" H8 z3 \0 o: y
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
$ A1 h7 j( M! F' U/ w$ L) o
* T3 c+ X- v4 B7 L
6 a6 H0 c* `1 r5 ]重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
  I9 A9 t# @, O7 P6 n( ]: O输入你的svn地址 地址请根据自己的设置自行更改& a* `$ \& n' l9 |

( f8 l4 z0 y  g# I! U# k$ l; f  _0 l2 g: n. I/ \) _
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了' j% R* o) u9 c$ C8 {

) X7 Y% o" f1 B
" b& Y; J2 s. M" m5 d  Y( k4 @; n( X(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)1 @1 a! I" o' _( l8 d3 ]

( _" i# b9 v& J2 m; V! L+ D
; E+ H, k" Z# P0 C9 ?0 O$ L4 C) M/ l1 R3 y6 P# r3 x
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
) t' t4 g+ Q; A9 x- ?. c% R) j' E# i/ ^  D; V
这时我们保存在版本库的代码就会被同步到网站根目录
% A5 Y" m" Z4 c- }$ l
5 K; B( d+ P% Q- p# f: \0 G. j
, m+ \, ?* o, H$ s: I+ m
$ T  I' Q4 H& s! }' L0 P. J/ w! i5 K
. b; Y1 P; E3 d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录) s9 i+ o% ?* J, j8 U/ |
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
& `9 K* }( ]- Y- M1 p. R# ]: z
% L& Q( [  ]; Y6 {$ \( L6 R" q
  1. REPOS="$1"  d" r  y! H! w0 L
  2. REV="$2"& ]3 U8 g# e7 b$ b6 ?
  3. TXN_NAME="$3"
    $ a) J6 Z8 S- `# u! C* n
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"8 z; p) T1 o* k/ H
  5. MESSAGE="$(svnlook log $REPOS)"3 T- p0 s1 ^) Y& f
  6. SVN_PATH=/usr/bin/svn
    2 M0 R: Q3 I' r! c; T6 D) n% c
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    0 Y/ ^/ j  @( M" x- ], m8 m
  8. mkdir -p /var/log/svnlog
    3 T- W8 o8 S/ Y# @( L
  9. touch /var/log/svnlog/ssyleo_update.log
    ; ?, B0 ~9 `/ _1 l3 a' t
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    6 e  |& k0 H( T7 A% e0 s' B1 S
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! i1 n' b4 F8 L0 E6 @
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    # ?, j6 `0 Y# C) t2 @" w2 `. a: H* R
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH3 W# l* M+ {7 E; ]  F0 o
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

& @; g9 j+ ?; G( K( U/ Q
/ W. p0 R; P1 y. M
  1. #!/bin/sh+ R; Z! L% t, p) z) z1 k6 V
  2. #设定环境变量,如果没有设定可能会出现update报错/ z% C" V' d2 N2 n
  3. export LANG=zh_CN.UTF-8
    - a2 D: z$ j7 C) f
  4. REPOS="$1"  Z. A: ]% q* c% }0 p: y1 N% `
  5. REV="$2"
    " g* o- t! E7 ~- Q: b" |
  6. SVN_PATH=/usr/bin/svn
    0 l* e. b5 `. y6 D7 x9 i) r
  7. WEB_PATH=/web/project
    " @* k, `( B" V, @) @. B5 k" F
  8. LOG_PATH=/tmp/svn_update.log
      M0 g3 ]: _5 ]; j0 f
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache4 ]) t' u( j+ ~' C! \( Y
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    8 |7 _3 Z% z3 F  v
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH4 O" {- a, H# n( h* K! g) c
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    2 E# g% Z# j: }$ [& ]
  13. chown -R www:www $WEB_PATH
复制代码
4 l" G/ d' C) J
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh1 y8 j0 t6 r( n. [8 e; e
export LAND="zh_CN.UTF-8") j0 S# k# Q7 j) M
REPOS="$1"4 {  x& r% y* A7 X. Z# x
REV="$2"  u( U5 l+ H9 H! D4 b  g
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- N0 |  s2 o. A9 p
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache: y. i9 D  z, Z2 R' a

  1. 3 ^' d1 D% p5 H% N% j7 l3 W( R2 q
  2. #!/bin/sh  J8 A( ~# b* V8 x* o. D5 p# k+ ^* T  F
  3. export LAND="zh_CN.UTF-8"% `# t! X# {* W' b( O
  4. REPOS="$1"
    ; p; P5 e- e: x9 r6 j0 a
  5. REV="$2"
    2 a  n1 F1 k7 K' U
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    6 P3 T% G% F# b& u
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

  R+ v7 B0 |+ o  S8 \. [& I* Q
/ y+ V$ v' ~, V: N. G+ N6 p
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 20:00 , Processed in 0.062745 second(s), 18 queries .

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