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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
& {1 N6 @( O7 d8 o; m; ESVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
4 J, {. K5 J0 w1 x1 `+ D* b1.准备工作' w) D/ c- g- V! `
一台centos7 服务器 一台 客户端
& F8 ]$ c2 ^4 @————————————————! R* A5 P6 [2 P  f
1、验证是否安装了SVN' x, ?4 H* E: |; L. G

5 Z. O! ^2 i* |5 ^, q命令: # rpm -qa subversion/ {* T2 M- @5 S8 k+ H5 d

0 q( a8 H  S9 _; q% V2 ?7 f; z如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_649 ]1 d1 o! G; Y( D
0 i5 q! ]& j7 m/ x
否则,空白2 x$ W: F$ `, i) z$ K$ ^, z

3 v, i6 `' F1 {2、安装SVN的命令/ }3 {9 h8 L0 }6 F3 \

) s5 n6 X4 V9 `7 I# C# yum -y install subversion9 G) e7 G/ B) i

5 x2 I/ _& \: T6 U) z  l& L接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
, y) n8 X2 O8 C" J% {6 ^4 y3 D, ?创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了6 J* @. s% l, k; G
8 @; k4 I! @/ p7 c; ^7 r
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置6 t* `% Q! F6 H6 S. L

% B9 @3 e! E4 l" U4 U0 ssvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
# X- ~. f/ a% d, e4 o
% {( D- v% L2 h  w
, K! ?% L" ]9 h  @0 g- a. k. u3 I首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格. c; }4 Z. Z& I- {; H

# z1 |7 v% j3 x; E! T4 T# password-db = passwd
$ m( d5 a# `$ P% E8 ]
; s/ c! s+ ~- w4 f# W' P) x# authz-db = authz) `1 _5 c  |$ t
  E/ l3 w: h/ W. R6 x2 R3 H

) F5 A* d$ A- |" i3 A% j然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
$ W$ i- S( a# @' G% x2 V- ]4 M" R3 ^; h
登录名=密码" \" M: e, U- b& y; w% }* i
3 z3 `( R- X, a$ x+ I" r% [( V
user=123456
! e% U4 K$ z: ^$ Z9 W; }  k$ W; F+ I$ u# _) `

. s+ r! @5 G+ f6 Q- u1 M! |0 U最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
* @* o( J/ p: h2 r/ `/ X$ v- L8 |; T0 y
# * = r
( G6 q4 \7 v; u# C8 }" H% g1 o' M# s! r! H. V2 u4 w
[/]
4 [) f/ x. V% W' y& d5 S- @) A7 q7 U4 q+ k6 u
root=rw8 R1 `4 y' P9 o$ ?+ c; X. [; w

# J9 q1 P7 v2 a7 [% k7 C这是用户的配置就完成了
1 V# S% i& B3 D- V6 P. V  r. ]& h) F. Y  w- J3 t
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
9 Z# v6 J0 ^7 T- A0 W( _+ |4 usvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
. w- t* o8 y7 k- n3 d6 d1 |1 T/ }- W. s6 {5 A; J+ g0 x4 \4 _6 p
使用此命令开启svn 根据自己设置的目录自行更改3 N8 Q' A# x2 {% @8 b9 K" U& M
- f4 |& H9 w7 j6 Q. N5 t  J
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
, w, O" I; P% u5 ?' n+ H' H0 A2 p, I% P1 d7 p$ M3 h

7 t9 g) \% ~$ p; Q4 g" m2 _0 q: vwin下载svn工具
& G( O% _% E6 {  ?; V( c6 P- G( [# q/ ^3 E% W, l
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
" f! F0 c9 i' G/ Q. p0 s
- d1 s+ ]8 d7 G- z) v' ~9 P4 [/ Q, Q9 s6 C
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
% V  q7 q, K8 B. }, W输入你的svn地址 地址请根据自己的设置自行更改8 C' q/ V' w' M* B+ Z9 g5 E5 u
" @4 ?; n) n$ H$ J; W
) C; O& M9 K3 W( t- V' D3 U3 n
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了' K, u% S2 L( }

% s2 }: f* q$ h0 K, [0 L' I" G- Q; m$ y4 [- m9 Q1 }- l! L
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
/ l- F. j- _2 X8 R: s5 }0 q; e6 P* K  L) ^/ W

" F& d7 L4 D/ \  K8 j* d3 m1 f# z
0 _) p6 V; |% J9 c) Q4 c" I" [可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存, Y! |# e0 x& k( e0 s5 z

% }. S4 _5 e  r: E& z- G+ r% L这时我们保存在版本库的代码就会被同步到网站根目录
  o3 Q5 r+ u: T0 V9 l1 {' Q* {! E3 E& F! `( @

* M& [/ `/ ~1 |" T7 ?3 p; p9 y" K& D- b2 I& K! Y, F1 h
% i9 C- y  U3 a! e% n3 G8 W
7 ^8 S3 X8 T6 s! X; B: ?9 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
3 P' }  P3 G4 U/ K: _1 y2 [$ E/ ?cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit" Q% O. `* }& w3 t
' H6 g* u. A. E. y) p$ D
  1. REPOS="$1"
    3 X# E5 }& [5 ^+ z( W0 x
  2. REV="$2"( b# u6 m7 h) U: K. b6 T. E
  3. TXN_NAME="$3"$ O8 ]' s7 `: d! p5 D% H& P
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    8 l$ K+ ]) w, u
  5. MESSAGE="$(svnlook log $REPOS)"
    * {8 T9 e' {% @3 |" @
  6. SVN_PATH=/usr/bin/svn( d: o2 A* g0 e3 \' i2 v' i# _
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    8 g* U. o2 p3 S4 ^' y  \
  8. mkdir -p /var/log/svnlog
      ^5 _. Y8 A1 c+ H. S
  9. touch /var/log/svnlog/ssyleo_update.log' }8 r/ ~  P1 i0 Y
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log. H) q. o( V/ A& o$ O3 L
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 T& c: V! b5 Y
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH# f" n+ E, ?, g* H) `9 m
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH: F6 R  L; s6 e( A6 q) p$ z
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
. |3 u2 {1 L% I, M/ t

4 q4 P1 _7 Y$ O* p' K5 M- g, C  W
  1. #!/bin/sh( K# F* o3 y6 E! s$ D
  2. #设定环境变量,如果没有设定可能会出现update报错+ T& C: ~$ {( P; Y8 d+ ~( H
  3. export LANG=zh_CN.UTF-8
    0 a+ s6 K  Z: C" Q
  4. REPOS="$1"  q$ ]) P$ x$ o' m  m# ^7 f- ^0 g
  5. REV="$2"  w; ]8 }$ a' `: l2 F* z4 c
  6. SVN_PATH=/usr/bin/svn$ H2 _* |0 a. B: R1 U/ e( `
  7. WEB_PATH=/web/project
      N5 ]  a, y- W( \1 G! N
  8. LOG_PATH=/tmp/svn_update.log4 k- `7 j- ]- Z0 @
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : t. D3 f+ p1 |  I1 W& J7 B
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH& g  o3 Q/ d1 M& @8 C( ?- S8 R
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    - G& D. W6 o" G, ?
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * V/ v) Q$ c! f0 ~& M
  13. chown -R www:www $WEB_PATH
复制代码

* L6 M3 Z) l" z5 @4 W
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh; ^/ P* E& @% A5 k& @/ c2 g
export LAND="zh_CN.UTF-8"
- H, [) J+ m, h2 XREPOS="$1"$ t- r2 Y! E$ Z! E! S' _2 @
REV="$2"
; v* ?- ~7 T7 X$ w, c" xsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache& l- f  g# C- f. v  W
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! U! Y  p7 j2 D. u

  1. 4 V" A( t6 F9 l" r7 |) g! S9 c
  2. #!/bin/sh6 c/ x$ z7 G% b
  3. export LAND="zh_CN.UTF-8"
    # s8 F* z" |4 X
  4. REPOS="$1"
    4 S  t: w( |9 G% I: W
  5. REV="$2"% a9 s& O+ R' Y# T+ m- [) S  r
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ; i: Y3 d7 r% l- j
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

8 U' L: s( r( P! T2 e
3 Z, n+ G$ a: l) X( G2 Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 00:17 , Processed in 0.081343 second(s), 19 queries .

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