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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介) h$ [+ b9 \: r' ~% H
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
7 y2 p9 q* j# k& |$ @1.准备工作) j1 [) J  C& |" R4 O: r; Q
一台centos7 服务器 一台 客户端
0 ~5 [- Z) A  B! D————————————————) M' ]& ?( w7 \$ D; }4 H# _4 x# `9 Z
1、验证是否安装了SVN
9 P: R6 q4 Z$ ~) U" o# s4 v3 e1 `" p6 q8 l$ @- s! G$ y
命令: # rpm -qa subversion
. s1 E# r/ i5 `; f) N. o( _
6 ]0 h( I9 K5 P8 g1 T6 Q3 R; M如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_647 i; p! Y7 l6 d" ^0 i: o
2 {/ Y& b- h1 M1 r) e
否则,空白
" u1 _$ _" U6 A" n0 y+ r6 y& ?6 d; q3 @8 @0 h8 D
2、安装SVN的命令
8 G4 @+ J7 x7 C2 H' e; Z0 G. T1 ]9 e/ S- t/ r2 A, m
# yum -y install subversion
8 Y8 U& F5 r8 O2 P3 g" p0 \# k. ]2 P/ e2 F2 s8 ]
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录/ \/ K3 h1 S* J* @4 S
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了$ D4 w; Z! q5 y0 M2 p  o; f
5 E# Y* k& Z( s+ p' l: n. T
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置. k5 x! @5 L+ Z1 U* ]6 d
% g6 k: `# K* T0 E  e
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
3 G7 r" R1 n. v
9 y3 V( b  A" l+ y/ r% `! J+ m4 H0 Y3 Z& \  f) q
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
0 q4 B  q" {2 q% f
+ S0 u, z, p& R# o; s0 ^# password-db = passwd
8 s) ^. |8 F9 q
) c( h& [1 K. Z0 V( N" l# authz-db = authz
% {2 x0 a* u  q5 I4 B; Q5 r5 \7 Q" [1 H) S5 y, X) l

6 f3 [4 U) ^! y" c) \+ L- @$ H然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效# o2 \) Z/ _9 s  g! M
9 H0 A; A' c- N3 Z" P2 c
登录名=密码
5 D1 l; e( }. U  J
- c; O8 k2 ?$ E) nuser=123456
! i8 w2 R, V  L( Y) O( r; m9 \
/ \+ J9 \. ]' o  p, M; i% v8 z8 a) s. i' R- f) _7 q
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)- K3 M/ T2 l/ u# h2 U; b4 X

+ t; D  q8 c- U+ i& e6 ^# * = r' e# Q/ n6 p) f; t. T1 S

$ l$ m. M5 a$ X; i[/], M. j3 _3 B& b7 }+ z7 T3 H

2 E7 w1 v- F5 \! D1 Y" d5 troot=rw5 U! J' x2 W# x
* u9 V, T. M2 x; `# r
这是用户的配置就完成了" X* g' ^" s- a  ^& m0 N
% `( `: {1 Q; C* A
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
: H5 m7 P) z: g+ P6 Osvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
% n( W5 ]# [: ]0 v5 M- {# D: h4 q7 d- K9 o+ D0 d. T
使用此命令开启svn 根据自己设置的目录自行更改# z8 o: A7 g' P; t' W2 _" Y% q( B
8 V  {- r9 s6 Q8 A
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了/ k6 l  V% R) t' C
: p$ X  w& r) a& W7 ~/ x

% J& X# y; Q) h% r, E3 u4 iwin下载svn工具9 ?$ G- E6 l  s/ |7 Y

& d& C& \4 {; s- B接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了& J( Q; E/ x$ i

) R3 w, ~5 l0 f9 T
" a7 F1 |( @) M6 B0 V9 @0 }5 q重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码4 I, Q! L, [$ h. E, M- q$ c
输入你的svn地址 地址请根据自己的设置自行更改8 V% P% S, I# V7 V/ r
1 v/ P% ~4 t+ E
: }& M) {  X1 q$ q$ n/ V0 y  q/ s
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
" E: y7 D, J- D& [! u# {+ {" q$ B9 O/ B0 m

9 v, t4 c6 o7 r1 i- J(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)/ N! |5 S3 g1 l1 ~, s" b
- u2 Y. Q. w2 I6 U) q
9 y5 s9 \+ ?9 n: T

5 U1 O2 L3 J7 B+ Q: f可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存' {9 B8 p5 e% B: I9 R; f8 Q
" S5 E5 t5 c) q9 b! ?
这时我们保存在版本库的代码就会被同步到网站根目录
1 R( U& Q0 k9 M# i; l! ]# v9 P; @; q6 \
+ j+ y$ E6 i/ K/ e3 ]
1 r0 m# s2 A/ y% `( {

7 _6 V$ \; ]" x; D9 t0 G/ j. p. t! e" u; j& l, X% x' [# l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
+ I( e* A+ x" bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
0 a$ W! p: e. K4 R! z( a9 p7 b0 u: C7 T/ p" }
  1. REPOS="$1"
    ( I) D' m, _1 G. T' }0 a) [/ u1 A. }
  2. REV="$2"
    " x8 |) r0 l7 X6 _( M1 |
  3. TXN_NAME="$3"2 m  V( G1 X  @2 ^
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    3 u- B1 Y* l4 `; z7 J* f
  5. MESSAGE="$(svnlook log $REPOS)"
    5 A8 ]  s2 b  s% [; D
  6. SVN_PATH=/usr/bin/svn
      V( j* a# F1 E2 x
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    ( ^5 ?' V2 m  [. o% R- Q$ r' |
  8. mkdir -p /var/log/svnlog$ w- T% h$ K1 [3 i: _
  9. touch /var/log/svnlog/ssyleo_update.log
    0 `, Y* B9 n, p2 s4 t4 ~
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    7 w6 p8 T" R0 [
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    $ K- q- r$ e1 v- a/ l" W) F# ?
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    4 m0 a8 H( V# C& D& u3 L  L# y
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    7 q  V+ r5 w$ B4 L, `( ]* g
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
' k" d) `' @4 G9 E2 U

: R1 ]7 x# B4 U, y, G$ i: S
  1. #!/bin/sh
    6 {( N, d$ w4 j& _
  2. #设定环境变量,如果没有设定可能会出现update报错
    7 Y& i/ [, }  u6 c% R
  3. export LANG=zh_CN.UTF-8
    4 `' w  Q3 V  l* E
  4. REPOS="$1"
    9 o; P( |1 G# L8 E; D
  5. REV="$2"
    " {2 z: y" y1 x7 i2 d
  6. SVN_PATH=/usr/bin/svn
    ; g9 R% l" \  `
  7. WEB_PATH=/web/project% n1 b7 z/ A1 V+ J" V
  8. LOG_PATH=/tmp/svn_update.log: A- N3 \8 ~4 t2 l, {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    # t/ S. n4 _8 H4 R
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    3 n" x+ Q$ K! T2 x& C
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    2 h$ f& [: {  P0 a/ t# E& N
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH. C* d5 y1 P1 ^( N( i9 R
  13. chown -R www:www $WEB_PATH
复制代码

6 h! q% ]: H; T7 m. \( ]' E& n4 `$ N
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
4 n( `$ c- {" @9 Wexport LAND="zh_CN.UTF-8"
4 G' A0 q: F  w) Z; L3 E& zREPOS="$1"
3 \! b: E2 d: f" X+ q+ m' G2 PREV="$2"
/ g4 ]3 _* _, U+ usvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) B( }! k6 X1 V" J; i2 f
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache4 T6 F5 l; U5 Z! j5 u
  1. 8 C$ v' r+ Q; l7 H9 F
  2. #!/bin/sh5 C6 ?) r1 }# s2 L% Y& A0 H, G
  3. export LAND="zh_CN.UTF-8"
    * w, x) p, _# W6 M7 u
  4. REPOS="$1"
    8 \2 _  U7 m3 t0 i+ N' u) C
  5. REV="$2"
    . |( z# y0 R; z! h% d/ D1 F
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    2 D; ?) N- e; K3 s. J
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
" U% j# O: @! F- K9 f
4 P" a, I7 k! @  \
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 07:07 , Processed in 0.057577 second(s), 19 queries .

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