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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介3 p7 E, y2 k2 m. h4 E) C" R) _0 v" K& b
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)0 I  g, A0 \5 C) T1 F
1.准备工作
* K' c0 H- p/ K/ c  f$ S一台centos7 服务器 一台 客户端: ]1 d- z% Q0 q# k+ b' L2 f1 ^
————————————————- G6 ~# n* H; u% Y7 c
1、验证是否安装了SVN
; L9 p( z; I3 f1 T7 k* O: p4 R2 [% H4 a# w0 E
命令: # rpm -qa subversion7 ]( k$ z$ i, ]  a
, X9 S9 |& n% k; @- K* E6 j
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64- Z; Z. {2 m1 u
2 z' j# c6 |% Z- g# C
否则,空白
$ f3 U  _$ s3 M6 P5 s) t+ h6 w" ~6 L; U5 S
2、安装SVN的命令
/ ]/ O% t' l/ d( p- v
% m( p7 T, Q! @; y* }0 \# M# yum -y install subversion0 O. Z) c+ c4 [3 z; t  l5 Q$ r
& M, U9 ^/ ^, Q1 B: j
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录5 w. r* H! y1 o; R! J
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
1 H+ y' k; a9 P  I! W
7 [8 T: Q1 @# Q7 q) X/ N! I然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
* f/ H" r9 K$ ?$ v+ H* o; Q3 {8 C& o% x& H5 C  y4 T
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)- G: j0 Z8 }9 a: Y0 ~% L

; A- z6 W& ?/ [% F$ |/ O3 B  s0 ~2 u3 l
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格$ Y; W( l! R% [& d) W, e9 c

5 n/ \; C- ^3 e8 e: {1 V# password-db = passwd( u9 p! I5 {. f5 d; j* @3 ]

% A- u7 r' ?4 O4 ^+ C( D& u# authz-db = authz  m3 z4 N) y$ `. O* R* Z6 U3 V
' R# \/ S2 `; t/ {% M4 Z3 L
8 J, t3 m, h9 ^7 a. _( k& |' |! S
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
% W0 S/ x" u/ u" U8 P* L- m* N+ s
3 u2 C1 @- r5 r( k- R! p. h登录名=密码
( t; X+ s2 o7 ]8 f0 u0 M5 ]" O1 ~8 g" c3 T( s
user=123456
& X! s' M) \% P
! l0 R5 w: H; ]& M
7 s! Y: {0 E" [0 ^0 f最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)" Y1 ^( E- Y: p7 d, P9 o0 e: c% b! m

1 k; C* ^) ^( D* E# * = r
8 P  u! c5 V2 N9 ^' y+ j5 S0 Y7 U' j: ?( J% x7 E" S
[/]) c/ ^! K. {/ n) r; A

+ S3 \. I- i2 [7 a5 G( O! droot=rw
" M, J* I3 @: o" a' o) i, e& ~: H0 G( c  \  L
这是用户的配置就完成了& r/ d+ K4 o7 t0 z
1 _5 @& i* e; K) }
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 ?7 w, ^% ?1 d3 |6 Tsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo, B+ l+ p; z: \2 [/ f2 {
4 O) ^& l0 |% K& k1 @* m! d
使用此命令开启svn 根据自己设置的目录自行更改- o% u5 `6 Y: s, y/ _
6 K/ E6 K* @$ V% r) }0 K
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了, M* Z' U! ~$ A$ L3 w. p

' p  h0 ?5 v5 ?0 T& D! X# Y8 x. Q+ @- h' z8 ]/ z0 K
win下载svn工具
2 y' o6 v+ o6 ^" [* \! o
. V9 J  k+ h8 y& {& W; u接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
" X, \: X) A5 d. M- k/ H; h9 a! q" l/ h; Z7 B* }- d

3 U) p- @! L, Q0 Q: g重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码$ z/ J" |1 Y6 \+ d& T* s; ]6 O. p3 J
输入你的svn地址 地址请根据自己的设置自行更改
( G, K( s+ x( w, a3 R5 v% T
: E+ Y  o1 r5 W4 H1 v' k# L& J4 w+ e' {. n# F
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
3 y+ ?) A; C, x7 U0 j' L3 d  K& h9 N3 h4 z# w% M) [6 L) d9 T& C' k
+ E! _6 \3 f3 C! c7 `+ J
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)- c: j0 d. m( x1 p2 s9 n; @

- \$ P4 k- r7 s2 D) i9 v8 `& f
& g: o6 d8 e/ j) @7 G! \& G9 x1 P( Z' D5 ^2 x+ L; _$ F( H" ^3 J  [
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存8 u1 D3 a1 K( l, k3 z4 S- [) @
) \' C* f4 E, E$ b; s2 L/ z  F
这时我们保存在版本库的代码就会被同步到网站根目录! ^1 g# U! ]  b: R3 ?

8 R: }9 P4 _8 _. W' e- Q/ h" ?! q, |) @4 C  ?* |

- |( p3 i0 m4 e( l# y3 q( e% y  X0 S5 R$ j# U, m* z
; |7 ~( M. v9 x7 c6 S+ y% p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录0 m8 _& \# c" d5 G
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit0 T0 Y' J1 i; W* x* S
' A9 {6 G- I! m. p" a4 `
  1. REPOS="$1"
    0 f+ i7 ~% E, W2 _3 L9 m
  2. REV="$2", U; K2 m3 W* @& H5 _# r0 _9 m" f
  3. TXN_NAME="$3"
      D5 Y* }- ]7 N+ T
  4. AUTHOR="$(svnlook author -r $REV $REPOS)": F3 e( Q( {6 Y0 a' C
  5. MESSAGE="$(svnlook log $REPOS)"  |" m$ G& L( J6 O# Z0 M9 W  e
  6. SVN_PATH=/usr/bin/svn) A+ A0 `; C  t- P* _
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    + K  W  Y1 |! F
  8. mkdir -p /var/log/svnlog  L/ S0 z: w. T7 m9 ]# F/ y& `) c1 S5 {
  9. touch /var/log/svnlog/ssyleo_update.log( P3 z0 ~% g/ O
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log3 ]" D( O6 @2 S' W6 l; g
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 p5 M+ C0 w7 t9 M  d6 X# A& `
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH% @2 s, p% H$ q' I, @9 }2 _8 ~% C) o0 k
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH1 z( p2 G3 q% L- f
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
9 y; \8 w/ C' S( y8 a0 ^9 q( M1 h
" _3 C, X' A8 X
  1. #!/bin/sh
    * n6 C- |" b$ c4 c- t
  2. #设定环境变量,如果没有设定可能会出现update报错
    ' k2 N! V1 E. q
  3. export LANG=zh_CN.UTF-85 o/ v( F4 g, r. o- X3 i. W
  4. REPOS="$1"; y0 g3 c& ~; J6 q
  5. REV="$2"
    $ J- h" p% O1 W  J. s, ?3 D
  6. SVN_PATH=/usr/bin/svn, y; ~7 Q) s% ^+ N
  7. WEB_PATH=/web/project
    ' m% r2 E; E" S8 c7 q: F7 ]
  8. LOG_PATH=/tmp/svn_update.log
    ( J: c. D1 N2 o& Q, X: Q4 T
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache8 c/ s% D, r) K* g/ E
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    " c8 N! C2 L% V
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    3 E$ \, B' g* V2 b1 O( d7 O
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH$ X, G& J' y( Z/ @: c  M* H
  13. chown -R www:www $WEB_PATH
复制代码
# z6 f8 L$ Q( {
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh3 y+ v* v) T  _0 Y
export LAND="zh_CN.UTF-8"0 G; B: Q3 v0 u. O/ D' X% b
REPOS="$1"( R" y( F. L2 J' ~
REV="$2"
8 ]! O: Y- b" R) Y5 Jsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
5 @( u& O  h, `+ [! P* Dsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ @! u! Z7 M" U' U

  1. " y$ A" B0 E; Y8 c2 N* b( n
  2. #!/bin/sh
    ' e+ [5 z$ T* V$ V7 Y0 z
  3. export LAND="zh_CN.UTF-8"0 E0 g( `3 P" A8 y0 U
  4. REPOS="$1"' |. r/ C  D3 c- z0 o
  5. REV="$2"
    , a" B  K: T8 s  ?# O$ d4 ?
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    4 P1 B! Q4 J$ M3 I% I% F$ y( r
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
# ]9 x+ h8 [  J* S8 k

/ f' C3 h7 N( Q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 00:52 , Processed in 0.070338 second(s), 18 queries .

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