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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
5 P1 }! o8 T3 k! k% I5 BSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)3 M5 H& e' P9 L1 H4 E2 R. k4 W
1.准备工作6 ~" C( a/ n: i, y! F
一台centos7 服务器 一台 客户端4 F5 `- j6 L. a1 H8 y& o7 [0 M
————————————————
/ V. M% O% I- ~( E! u1、验证是否安装了SVN
9 z% |* c7 h: p8 B* {0 L1 q9 S7 J. P! S+ j# i3 `9 q
命令: # rpm -qa subversion0 H. n* Q/ ~: ~
7 c4 |% v  Q6 |4 K# s2 a. c
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64$ [0 r, L" \; W) K/ B/ @' h/ \

* Q# b: n  s' \* K9 B' W7 x否则,空白/ p* {* C- |& c- y1 Y- S

  N: }2 `# w) ~$ {" N) S2、安装SVN的命令' r5 G$ z- D- A: D3 p

/ j& r/ Q: M- j/ w' b/ y# yum -y install subversion
* m& ^' s: h/ h( I- M) M. z/ N& i2 w3 S: {/ A- j: G5 s
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
4 K  I5 }# c0 ~# O4 p4 ~" z/ ^创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
0 @# W0 v# |" U. C! @, k( W& j. ]! ~9 ^+ P
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
, T* J' C) z$ {+ F& |; M& n1 u+ @5 l( L; J5 l
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
  d0 d0 d: n( T# ?( x! ~1 j% [$ \; M, ~0 H' i0 \* k- I
/ M8 [$ l( b/ s  d8 z
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格. U7 U& I; b$ l2 \" Q9 @; ?& J

. S; U; S* y, x1 ~. a# password-db = passwd
% D, S. {$ L( q' f* A7 `( |: P+ n9 {6 A( P/ z! E' ^# T$ W
# authz-db = authz
  d! C3 `/ C( }+ {3 a; R
+ v" F  {7 O6 p7 J; V
( F+ U; h- x: h( f$ W然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效( a) |: s9 M+ m

$ N- k+ N/ @9 x6 n1 x0 l% v登录名=密码
: O- c# ^1 \2 W. i3 K( x5 z5 J
% c8 f* P" S. B$ j, ~user=123456
- r' M. I  {1 n8 o/ K3 ]9 Y& g0 `7 T! g3 s2 w( K7 K9 f

9 O9 l$ b# V5 N$ c/ b9 O; L% d/ @) G最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
5 d# s/ w+ l; C7 c6 I
7 V- d% @( _+ T+ V. Q: F# U# * = r5 a+ I  Y* B( C2 O3 Y. o
) j$ z& [$ ~# e1 y* w$ G3 R! y
[/]
8 J( Y- z  {/ Z! z0 q" f+ `6 d/ m( c: ]
root=rw
. p$ Y' t- h$ J0 N' g0 M5 Z3 X- v5 b) `" h
这是用户的配置就完成了3 M: u3 f( c) U. v- O. W( U7 o

% t( e/ u2 O& u+ f接下来我们就需要开启svn svnserve -d -r /home/svn/blog
! X& ]0 m; x/ H; H; esvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
2 q' P! O! B( B' `8 m+ O* e, R
' r5 ^+ |1 A* n使用此命令开启svn 根据自己设置的目录自行更改
, }: F7 e# M% W7 g
. H" ]# H, v3 K  t/ e3 I使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了. ~* A, D2 X+ X0 @

3 [% m  h; I5 A9 t) J! l3 z7 A; @% u
# I2 v4 {6 g! Y# p- P9 O" Dwin下载svn工具) l$ h  Y1 f+ h# v

! ]: O/ y/ I, m0 S. ^6 S接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
# V% u: ^8 J% W- z  O
9 P4 O& Q' P- k( \+ r
% t2 n! I( N: w2 L8 ^重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
; c% L! O' {! x( \输入你的svn地址 地址请根据自己的设置自行更改, R* ~" P2 i3 {% e$ Z+ i" B3 `
0 M3 N- r: x: @* ^. e

6 Z( J$ G0 X" L% z然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
  E: A: s$ H: L( @1 c
% ^: G8 q8 L% h4 V5 J* W2 R7 O
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
' i* ^( w- j" P! P0 K. C& i+ L7 x4 |+ m) k2 t
8 w- N- d6 m  K$ ~9 b/ ]2 j
; |, ^  I6 Y2 ]  M2 ]: s# [( D- e
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存: X! ~7 P9 [  f3 m

. Z9 N4 B: C$ q' u, F! W# z这时我们保存在版本库的代码就会被同步到网站根目录1 R3 I1 t, w" i$ G+ E. E" F

0 J7 E, X0 J+ G, k6 L& F* A. v! b- \$ s/ ?

$ I( g. [6 u) n4 `$ D2 j& |( Z1 ~0 `; q( ?1 d- l2 A& y' m

7 ?! |4 Z1 `. c- D6 B6 Q. k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
# o8 m8 d1 H: e% O9 Mcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit. v, d+ k3 [7 |
/ x  R  X1 l0 l. j
  1. REPOS="$1"2 N4 E& T! y1 q
  2. REV="$2"
    $ \3 F6 E0 n, g: P- J/ g; O
  3. TXN_NAME="$3"
    $ x  O/ O. U1 e! n
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") ^( O! T; |! O" ^7 a
  5. MESSAGE="$(svnlook log $REPOS)"/ w4 K/ _9 W* \3 y% e& Z
  6. SVN_PATH=/usr/bin/svn
    7 v' H- f2 ]" Y% Q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo( {3 w. j/ c' ]
  8. mkdir -p /var/log/svnlog7 i+ d/ Q9 L# I8 A
  9. touch /var/log/svnlog/ssyleo_update.log; k: s% V( ?9 \
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    : k5 {$ ]5 @2 \! r2 x, v1 u) ^
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH9 f1 @5 L4 C) ~' [' s0 U* |
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    # i0 c4 G! N, u: S. H" j. H
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH, z3 a0 @. _6 M+ Z* d$ R- g
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

& g0 S3 M9 f! h* N
$ y) @& o6 l  H: B2 e9 a" @) p
  1. #!/bin/sh2 O- X4 H. S# o0 o
  2. #设定环境变量,如果没有设定可能会出现update报错; f2 H% ^- o, x! G1 A
  3. export LANG=zh_CN.UTF-88 L; z( n4 @( O0 ^
  4. REPOS="$1": C! S! p  |- [5 T
  5. REV="$2"
    / L8 Z' l, X" F( |
  6. SVN_PATH=/usr/bin/svn7 @) r" i, V) u+ V' k0 r+ J
  7. WEB_PATH=/web/project+ f1 x: o; R6 }, E9 P, g2 b
  8. LOG_PATH=/tmp/svn_update.log0 l" O8 g; y. V
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache3 C+ ~4 [, ^4 X5 `$ }. h
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* N; [. \  f. U0 G$ W$ n. b
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH3 d2 Q1 A, r% e& d2 Z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    + }) ~' _7 R% \# {$ J
  13. chown -R www:www $WEB_PATH
复制代码

/ x  I2 l* }, A* R! _
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh8 s: H4 `5 X( J7 x* [
export LAND="zh_CN.UTF-8"+ w7 H3 |4 ?, H' d
REPOS="$1"6 O; _1 f, i1 _: C' D. _
REV="$2"
, P, e0 u. W, ?% Y0 A& Q' ]svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ _! q  {7 V+ K6 E( v8 e$ u! Xsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 `: Y1 ]1 I' o

  1. 0 A0 d( ^; d- \2 R
  2. #!/bin/sh1 _. G( i- f' @9 f3 J; h
  3. export LAND="zh_CN.UTF-8"- i3 B2 |8 W8 d& h3 ~$ W
  4. REPOS="$1"
    5 [' F1 _8 ~+ o0 n
  5. REV="$2"
    ! X) v0 u( E2 S0 S& R/ B- \! _
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    4 Z7 p/ ^( L- K8 G6 H! _
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

. S" a8 [( p  l$ y, z
1 s1 Z( ]) C! n' x( o% c* s
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:44 , Processed in 0.055446 second(s), 19 queries .

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