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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介+ S; k/ n: N7 S/ D. c% V
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
& B; Y& b2 [, l# A! E6 |( ?* p1.准备工作
4 Q% u; ~9 B1 ]8 Q, ^0 t一台centos7 服务器 一台 客户端2 B& o& d. F$ O% ^5 }9 H2 _6 C
————————————————
  l7 g& W9 w3 s) x8 u8 s7 w5 x1、验证是否安装了SVN$ g: O# c6 o" J8 l

& A/ m( t) {( ^# P, _2 ~5 @" r  j命令: # rpm -qa subversion) Q) {. @% {' C* [
" q8 w" v4 K. e7 Y8 e# L. l
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
, c$ j3 f1 o# ^' H8 \+ E) g- [- g% c" S4 b5 X9 A( r
否则,空白* a$ O; M' ?* p$ f! s6 V2 T7 L
+ d# h$ z0 L. _: M
2、安装SVN的命令5 ~4 R0 }+ t; F+ y& P) @9 @' c
9 i+ q1 e& Z+ |" H
# yum -y install subversion4 y5 |- _$ F- c6 H1 w7 x

* m, R9 {6 }5 r# k- b1 H( k) H接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
3 O) |# U  O" x3 Z; Q/ H创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ e6 W* b, o: F7 e4 M

$ L) h) Z% O: j  `然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
4 F7 a7 `* m; i# w: I( F* G1 t1 K. ~( x
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
: ^. l% q+ r4 J2 W7 a, T0 y$ u: A
7 T% c  `; e7 o6 H4 P: j9 \. Q; q- j( `
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
# q7 a1 v, Z0 l# f5 t" m+ c) r  _: I7 J
# password-db = passwd
& O1 U# r; L, c! s! L4 u* h% @0 }; s5 g; e% Z4 i% Y
# authz-db = authz
5 b* j+ c* C# V: c8 J
+ _, j1 l/ F  M5 b7 f" K6 L5 W2 ^% G. }7 V# J6 f) {2 P
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
" ~- [0 y6 A1 A0 d5 d5 V7 D, w' P, R2 v1 r
登录名=密码
9 K/ i8 E+ m/ C
+ v/ ?! a; f' D! {; Suser=123456. E1 Y1 F( [  n& U
1 A; ]6 ^. e5 \0 m' e
( X7 e' W. N% x8 u! j  W9 l: m
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)- Y5 p8 E( ~/ S& @) |; U' K. t
/ _/ l0 f$ g) N4 X$ m: B0 V
# * = r
" T6 |5 q: Q& `; E- d% L& E' Q6 r1 N0 Z% E: F6 P+ o( R
[/]
. |1 L: \7 A. B: I/ V7 c* s6 _( c0 ?
root=rw
0 Q; S, D5 D' l2 ^/ L  H* a; c8 u6 }$ C
这是用户的配置就完成了8 m& ?7 f# x" k7 A/ o

0 B8 v5 g7 a3 F, e  n/ x接下来我们就需要开启svn svnserve -d -r /home/svn/blog
" I: i5 s/ l, z# x; Esvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
, C8 l0 k$ O4 ^+ \/ |7 ~' G7 y; F$ U2 s9 z' ?4 l
使用此命令开启svn 根据自己设置的目录自行更改
- F4 M& y, W- U% q5 y
0 d1 i% b3 H& |6 i- T! T使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
( B' @8 @/ f) D, @
& \. O4 n0 E9 L8 A
3 |1 J# F/ {( C6 ~win下载svn工具
8 W! |4 A% X1 M& a# }% N6 o7 k/ D/ ^
1 X2 i' ?6 V; u8 D' ^接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了: Y; W3 q* r* s' B. \9 B% G
. d- D- q: c! ~( F# |2 C7 O2 h

- _) ?9 i. p+ h) F重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
# [5 N- Q" G0 o输入你的svn地址 地址请根据自己的设置自行更改
4 K2 {- d2 _! f4 ]" X
! n' R0 l5 V# c8 H8 }
( P  C% e( Y2 s; ^7 p然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了) U5 W" I, b4 P8 z7 r8 H

  z: ^7 Q7 q, S" R
: W. M+ R( H3 [(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)8 S# E/ i2 p8 m7 z* Q2 v
/ h3 c( ^$ @9 w1 W- {7 h: J7 X

8 q* J$ O# ~. u5 c+ I7 E. W0 p3 s* n9 L! v/ S& ?1 h8 S
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
, @3 h9 O% N/ h" |1 A! f
  \$ E9 A2 I# e4 ^" U这时我们保存在版本库的代码就会被同步到网站根目录
$ u( k3 @% T# n. N4 p& B" G+ j5 H' T. }* Q6 g  m

* p" H( _; R+ O% K3 z0 ^  `1 `+ c9 ~3 V! Q' d
$ o7 O9 e; z3 Y, X: L

, `2 i/ i! U, p3 `' c/ D. T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录$ R7 \9 e; A6 p; M, `9 f
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit+ F* u0 Z; V  l& b

: m# q9 {0 o6 c: i4 m- Y% }- O# U
  1. REPOS="$1"
    # S  S( H4 i; D: Y# m
  2. REV="$2"8 t$ ^. J! i. F3 o8 l
  3. TXN_NAME="$3"" l' r$ A; y- B, C( q4 _
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"  {9 t6 U0 Y4 e; I" u+ j& ^: V6 }
  5. MESSAGE="$(svnlook log $REPOS)"' r" F# h' J' R9 T
  6. SVN_PATH=/usr/bin/svn7 V- n4 ]1 R" Q3 j" v7 s
  7. WEB_PATH=/usr/share/nginx/html/ssyleo/ P: |( L+ e% f6 ]% n+ J6 i6 u
  8. mkdir -p /var/log/svnlog* H% `0 Y7 E# F* l. C& @; J. \5 t
  9. touch /var/log/svnlog/ssyleo_update.log
    / H% {" P5 K$ G
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    6 q/ }$ I1 I* K' I% ^2 ^9 Q
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH# o% @- z2 [& u0 ?
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    . R* B0 {$ R; t; c7 n
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ; b" [+ A, w+ X; K) o, S0 X
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

; ~3 s2 K5 ^1 b) r) C$ z
6 A) B! n( p  G1 ?$ o
  1. #!/bin/sh/ I& R/ _) N9 U% W
  2. #设定环境变量,如果没有设定可能会出现update报错4 G, M2 B$ a/ [0 ^* i7 k
  3. export LANG=zh_CN.UTF-8& t- M" g* j5 G! |; i2 E/ Q
  4. REPOS="$1"
    5 M4 P/ i1 @. }2 e% Z: \3 q/ z
  5. REV="$2"
    ) W, Q& C- Q+ q/ A5 |7 f
  6. SVN_PATH=/usr/bin/svn
    ' B+ m. g4 U/ n
  7. WEB_PATH=/web/project
    # X3 u; Q& \' x, L* C4 D
  8. LOG_PATH=/tmp/svn_update.log- x) [8 P2 _5 f; X0 E3 n
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    9 ?& n/ f' B2 i8 E, N( O
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + e5 o" e. i, _! [1 h, B2 b/ M8 p
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    / I3 @5 M# T" Z$ {$ a. d
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH# ]8 k' I( w" u
  13. chown -R www:www $WEB_PATH
复制代码

, [7 i% |6 C" D! h1 H) g' Q" B
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
+ ^$ ]0 X  [: W% Uexport LAND="zh_CN.UTF-8"4 l* n2 Y" K6 S' k9 e. h" X' a
REPOS="$1"0 p# L# E4 N! z$ m- ]! y2 B
REV="$2"& v( K1 P. x5 ^$ Y( c% L! c  F
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* N5 x: |) [  G4 S; i6 Ssvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache6 p* _% y& ], m" K2 D
  1. 0 _, w, l0 j; l( L7 _& K& e
  2. #!/bin/sh: y# l& P) ^) W0 D9 X. X
  3. export LAND="zh_CN.UTF-8"
    / b* c' }5 @( H/ l% C4 C4 u( B# T5 t% x
  4. REPOS="$1"
    ) E, U4 ]" j( h) ^8 i1 B% a: ~
  5. REV="$2"
    % I5 w$ b# g5 Z: a
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 R+ X' h) H8 |# _+ g% {" J
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
5 u0 U& E2 |2 J+ V

4 ?# w* ?+ j2 I2 R
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 20:49 , Processed in 0.059154 second(s), 18 queries .

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