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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介1 X1 ?' u$ s7 ]2 q& j2 |
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略). d7 E, ]1 P( `
1.准备工作, T2 k3 z* m4 W3 T
一台centos7 服务器 一台 客户端
% Y9 K7 V  w% h7 A8 T8 J6 O. V————————————————
" N% L  t( u1 @& ?% U# o1、验证是否安装了SVN
9 V. r% x- w8 F; k  h( A; G4 \. F! d$ S) B
命令: # rpm -qa subversion7 ~8 Q& T1 k: N) z6 h; y
5 B% G7 I( V: R" n9 a, a8 e
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64% R# g( E( `2 Z7 Y3 a

* o% V+ P- K: e否则,空白! D8 G/ N+ E8 |/ @9 U, P! w
4 L' Q+ \3 S# f+ A2 o+ b1 o# s
2、安装SVN的命令. a; M; _  h2 e  T9 N$ ^, y& O
  h( Z" R& u. W. k8 e  K
# yum -y install subversion
9 E# ?# _( j6 M# q/ o" B' d
0 t! v+ Q3 N1 V- N  E0 K接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& G+ ~" Q5 Z0 M5 Z% y% E创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
  T- N- H; H% X
# r% ~/ L6 `3 F. p然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
" F1 ]# m* D3 @7 a+ Q/ e: i, ~& d7 }" _
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
6 j/ D; l; S$ B7 [, S, l9 l; ]9 D6 U3 {! U2 t9 ~
$ a& z. r& T) [5 h% u3 w
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
/ h+ N! P. t8 g$ W/ S7 K
! J. Y# b' f9 x8 C3 _- C# password-db = passwd
' U) C0 o8 Z7 b6 X
5 O0 m$ z" F& U) C" y* S) J# authz-db = authz" ~) T: _& n% ]# e+ H$ x& s: Z8 U
4 ?2 p! }# \% |! j

+ c9 a! ~& F4 q+ I) X5 e* ^% {然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效/ M- l1 s# Z/ T6 C' P: u0 S! H2 X2 @
: p5 ?2 y( L( d
登录名=密码! _4 I$ G" N3 K, v

; K% q: Q- r6 q: Iuser=1234567 [; k5 }% u0 \  ~6 X$ U

1 O: s6 t; C  a
& K3 B6 j4 ]  b+ q最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)* V8 \. u% a/ Q/ b9 L7 c; C, a) x( y

# ]$ P  ^# u' q3 v5 N: s# * = r
- ]9 p, p: Y7 G! L# `; `; g+ w' Q; _/ Q' q, ?9 i3 D
[/]
- g* D+ H) c% [0 l
) A; S4 _; }0 d) W6 proot=rw
3 i: {5 d( I- ^$ n; \# R/ @$ a5 ~1 v- ?# `: A  l' Z' Y
这是用户的配置就完成了5 k% X( {  H7 U  F
& b6 j1 R1 l( _' k  s+ O
接下来我们就需要开启svn svnserve -d -r /home/svn/blog , m- l! X* K/ L  i: R- X- J
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo7 y1 o% _+ `, F9 }, ]# b# P8 Q+ h

+ R) ]+ D- M* L$ n8 M, w% l使用此命令开启svn 根据自己设置的目录自行更改9 P6 k: K! \+ w- @" I- E

" q5 s% [  }9 E使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了9 U) j0 a" x- P) t) O; u
/ o) V2 q+ R' ?* h

; @8 e9 P5 ?( Y9 O% t2 W$ p& L. dwin下载svn工具
8 ]0 f7 f  y+ N* K5 `$ W
+ i: G2 s+ C% x接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
: G" n; m$ y4 I+ ^, y
5 x3 a( @( [3 w; h& X& A2 S0 v9 z" C5 H" W+ u0 q5 p: `9 X
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 a$ s, I, [2 n! ^8 [! ]8 w" ^
输入你的svn地址 地址请根据自己的设置自行更改
! w+ l( W6 D0 K: w) P* u4 X" {0 ~# T' |# J3 s9 j) C2 i$ t

" @$ U4 W5 g3 ^) w' c$ A然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
; ~; M* W) b/ @) u" ~
' o8 I: J" n) U& j8 L* B$ [; a, R5 ~- w& @: T* l- y& q% `
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)0 s+ q+ q7 ]) U/ E

2 X+ y) a2 H- u
; s6 p1 _0 R: W* B! h7 I. M( s
$ v. @9 x) U) m0 F& S可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
' L6 ^! S' U- e6 z+ \  K9 |% J* ~, _
$ F3 ?+ q2 ~. ]9 t! W, `5 x% n' j; m这时我们保存在版本库的代码就会被同步到网站根目录; T3 n8 ^, W. t0 W8 t: I! r5 P
! c/ x% D5 w' c* `- |+ T6 ^* a$ S
. i# D+ `# L4 P9 }+ J

+ I* v( P0 L% S- C; N; v
- ^0 e5 t' B" q! y# q- Y, j: y! i$ [$ z# j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
+ e, O% i* H/ {$ o: D2 hcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit% Y6 S+ U' F5 r, Y% r+ Q( f8 r4 V

2 O9 T$ `- X1 ]4 B$ f; s: r/ R1 I# `( P
  1. REPOS="$1". t2 s) `4 Q7 v5 W; c$ }
  2. REV="$2"
    " {1 ^7 J  h% y8 ^
  3. TXN_NAME="$3"; g1 R/ N' P- W7 L7 ?
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"; d: O: F) O5 P% Q/ g
  5. MESSAGE="$(svnlook log $REPOS)"0 Z( F" j! y  h7 I
  6. SVN_PATH=/usr/bin/svn8 i/ r3 v$ m( k6 k) ~
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
      K! a8 A% i- e  v2 L* \% q
  8. mkdir -p /var/log/svnlog
      \1 p7 l- o" _& O1 }1 H7 u
  9. touch /var/log/svnlog/ssyleo_update.log  R  F1 L" M& R9 v+ G4 a7 t
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    2 S* \5 L" k( I+ t2 N" M/ ?
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH% F$ ^' P$ _' C; S( ?7 n/ i
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH9 [/ M0 v- W% W7 K! l6 `, Y2 S
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    . l- k$ [& u2 Z8 f% Z! w8 ^% x
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

# U! ~$ ?: F8 s; b$ a. x8 H- s7 L- D: U1 ^3 L4 r
  1. #!/bin/sh& E) S8 D9 q4 o0 }4 J
  2. #设定环境变量,如果没有设定可能会出现update报错( R1 v3 [+ ~- b! d' c1 i
  3. export LANG=zh_CN.UTF-81 R7 g7 B( b, Q! b: c+ R
  4. REPOS="$1"
    ( B+ e# |5 C* E
  5. REV="$2"$ s7 F! w. |. }) c  }# T
  6. SVN_PATH=/usr/bin/svn
    5 p% K, f3 K+ h: X9 E5 H. _. z- u, Y
  7. WEB_PATH=/web/project9 [2 v1 n. V. m1 q! Z, d: w' `, j! r
  8. LOG_PATH=/tmp/svn_update.log
    2 I, }/ I) }! G" m2 I0 L6 b$ {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ! c) o% [/ |% W( p
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    - U, s8 `; c1 _  e
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    1 E5 Q$ R7 w5 G- `! }8 g
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH1 ?) A9 H. L. y* U( h8 q& Y/ ^" u, s% s
  13. chown -R www:www $WEB_PATH
复制代码

! `. ^& }: Q" J4 i- D" N
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
+ U3 h/ g8 p2 p0 Cexport LAND="zh_CN.UTF-8"
7 ]  k0 R5 @& a( h7 ?5 c8 TREPOS="$1"* H$ q0 B  z: x# Y4 B9 |6 X, o
REV="$2"
, C. F, m! B4 j+ T5 G( o  F1 ssvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. V* w; ]1 q" V  |& x! \
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 u, [: _( R/ [+ C
  1. ' V4 Z' H( V9 E- p6 {8 G: Q+ h
  2. #!/bin/sh
    & X/ e- ?" U6 h1 |$ {
  3. export LAND="zh_CN.UTF-8"" G( B- D; _- M6 H% M
  4. REPOS="$1"
    0 q9 C2 O4 Y  ^% U
  5. REV="$2"
    5 |  q3 P- B6 W4 B4 S. _
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    " d; ^: @; t7 @# q8 ^2 i2 H
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
8 s- V4 J2 P0 u; w5 B& Z6 X8 }3 _
$ ?& I# Z4 q$ q% j) Z, u, H3 P
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 13:04 , Processed in 0.059122 second(s), 19 queries .

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