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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介4 W* R. @& u: b# a  B; G' y$ S9 Q  C
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)/ a/ q+ p+ Y8 b2 k2 G2 \
1.准备工作
; F  j4 t5 \0 H& ?) E一台centos7 服务器 一台 客户端" w0 y0 c, h/ S* D+ u, }0 K* B
————————————————
, r0 @: T8 F4 u% W7 U: H3 W1、验证是否安装了SVN. q  z  G+ y0 G* Q( p: s$ D
4 H* @( X5 g$ v9 N: Q
命令: # rpm -qa subversion; |% N. b8 H1 H4 ^% i  }7 H

% f) r# v" i8 [5 P: n# o如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
! o1 E/ Y! q5 I  i2 D8 E: h
8 a9 Y' }  b5 W7 G% e否则,空白
; g- N( o% H) w5 {+ |- b
3 l, @, U5 z) k! w9 j8 L5 g; N0 ~! K2、安装SVN的命令! [+ B* ?0 ?1 Z2 B7 H* ]' Z( ^. J

3 g" X) z& P- s7 p3 ?9 `7 x+ c1 Z# yum -y install subversion: Z0 z! t; Q- }' ?2 {" }2 a

2 L& ?* B" G1 T接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
% E. q# Y1 `8 ]  p" a创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
; F0 E- Y* k. {8 B5 O" {% E4 O3 K0 G+ M1 d; X, J
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ o4 U5 C, P4 v2 A, Y, F( t# o
; L, o" V  l" k6 l& ysvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
, _8 P+ I2 W' K/ R' H0 h% m
/ s, P/ P8 X- V! m( I( O7 ?( J* d; r$ t7 k
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格; @; V% z9 n* t" K( A4 R

4 c( n, k2 f- `; k# a# m$ r# password-db = passwd
7 `( B/ r5 `* D
; U+ u: y8 C" M, L  m* q1 _# authz-db = authz
' b9 F' g. K, a3 p" p0 J3 Z  V/ z+ G" P. A, N6 \" Z

/ s8 W/ N0 N$ ^& t8 |* z然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
0 _9 H/ D5 w! a1 [! ?. J$ v: F/ V) E8 a/ U/ a' n4 y
登录名=密码
5 ^6 V! i4 [! Y, O9 V1 |
" y! @5 P! {+ K# U" x+ luser=123456$ y+ `5 y2 W+ M9 x2 P2 ^
; Z0 x, t  t% }4 ~( s* }5 v/ g
8 T5 f  [% m, B4 k
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)3 J& u5 V7 h6 L% p

( L& o/ D4 E5 ~& H+ K# * = r
8 \, N% ^0 u7 w7 i7 X+ Y' w+ J% t# I( w9 r: `
[/]
$ r& r  y# b$ ?$ g& F
( j! S. c" g$ W, R0 t1 jroot=rw$ w4 `( U5 B. Q) c$ _* A% l4 N

4 Y- d! `. B0 B" M# l& f& Y- b这是用户的配置就完成了& n# Y' Q" Y& c# u/ o; R
5 M9 j. _# u4 F+ W. p" b! I
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
. K$ S3 Y( V" k0 J1 S6 s, }svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
% K9 \( C5 q5 _! N
7 K" O) K8 {# C* M3 l2 H! O使用此命令开启svn 根据自己设置的目录自行更改& f3 _1 B" J, M5 L+ w
( @. N. P. E9 c% w8 _! l9 _
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
" B8 z5 M) j' g9 ?8 C
' w1 ]+ l0 Z1 I) s5 P1 ?3 j3 K  r2 G3 \& C
win下载svn工具
0 W: x0 w6 B) r$ K; ~4 c" s% r8 P. E2 c( L
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
& y/ [+ P  d+ k8 g2 a" a& t/ q  w/ J

7 y# G7 c3 ^0 {9 _重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码/ E5 S. G( |5 C0 x( O7 R
输入你的svn地址 地址请根据自己的设置自行更改
& |+ K% B9 G2 c# q. A% S. C0 I7 p  s

( f9 \, a- T/ b  j. j( `  E: |1 D然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了( M3 B* u* @% p8 Y! Z
6 `8 T7 D  R2 ?/ i

. I1 r! W1 @# U- ~6 |2 p7 `/ |- B(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
# t$ D9 E% q' N6 p% r6 m+ P/ P& J: G' N: \

$ ]2 k5 l$ I; b, S( L+ B9 N) U
$ ?8 [$ N' z0 r1 Q可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 [+ P; d; `: T. Y) q; p. i9 ~, y" o/ i# }1 w8 S3 d
这时我们保存在版本库的代码就会被同步到网站根目录' f4 S. H& N4 c+ y( D! J
$ }5 D# S$ ^( e2 W( P) }

* G( O3 i) W( [! T) e% [7 l" M& b% U+ ^) G. ~9 @
' p0 T6 M$ x- @; ?5 U- B8 T$ {7 Y6 B
7 i4 b; D- X# Q! P0 w+ K/ k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
1 W' A/ V  S; Y1 Ucp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit2 O1 ?, k4 [% Y1 q! E6 Z- B
8 Y! E' O. l& J5 F
  1. REPOS="$1"- O4 P9 K6 r3 C% w; D7 P/ n
  2. REV="$2"4 k& w; u# d4 U( y! _
  3. TXN_NAME="$3"
    - ]7 `+ H2 M3 J- M) I: Q
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    7 a- F6 Z1 s+ D8 v+ Y7 R' j1 O" K
  5. MESSAGE="$(svnlook log $REPOS)"
    : V" |2 V" S( x+ t# g
  6. SVN_PATH=/usr/bin/svn
    2 o1 q4 }! u' F( j$ A/ C) C: v" l
  7. WEB_PATH=/usr/share/nginx/html/ssyleo, k- S. Z0 ~7 c5 n* ^& }, n4 R& r
  8. mkdir -p /var/log/svnlog
    * F3 R7 H! \8 _: g8 U) n
  9. touch /var/log/svnlog/ssyleo_update.log& f# N$ O: C3 U; K$ J. a
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    # b, Q& V" b9 o, t6 ]
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 r( S/ q$ d, ^
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    - [' ]( `3 ?: K" Z! g
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH* o7 [9 `6 P+ }
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
& l$ r) n1 i* r( e% G7 e1 b; o) q
5 M0 I. {! x4 y* _( e
  1. #!/bin/sh
    8 c& F/ }: v  U2 X+ j1 j
  2. #设定环境变量,如果没有设定可能会出现update报错2 R& [/ s, [  _( y
  3. export LANG=zh_CN.UTF-8
    " V: |, B- t2 J3 i+ |
  4. REPOS="$1"
    9 ?$ i+ [1 ^; M$ L9 P
  5. REV="$2". b: M$ G9 L0 [8 u( s5 S
  6. SVN_PATH=/usr/bin/svn; N& i* w+ O* H
  7. WEB_PATH=/web/project
    . G6 ?* M9 |4 ?3 D; S
  8. LOG_PATH=/tmp/svn_update.log
    7 k8 w$ }5 @6 [! {& `+ L5 [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache/ w* S* y2 W5 w4 }
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH! }+ K. W1 N4 P/ x3 @
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    & e+ q/ t$ N9 K
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, g+ k6 Y5 `3 k4 f& N. n/ Y( d
  13. chown -R www:www $WEB_PATH
复制代码

' c' J: i' E' M* H- g2 @
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
2 E+ k. R0 ^0 ?/ H( P. pexport LAND="zh_CN.UTF-8"$ \* Y9 G. k( w; P  l% w1 i
REPOS="$1"' v& m6 Y) e: W3 Z
REV="$2"
$ q+ x3 {# |! H% B: Z3 E6 Osvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache2 `2 P8 w) `3 m: {' @: D# y
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
8 v0 `. Z) b) q3 Q

  1. 9 ?4 K0 q, [: B" Y# N
  2. #!/bin/sh. G+ a1 t9 K, n- }. j% Z  _
  3. export LAND="zh_CN.UTF-8"- H! d0 d, A( `& h8 ?! A
  4. REPOS="$1"
    ( J  `. m9 m7 A
  5. REV="$2"
    5 A. N/ x* V7 a  j* w
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  {3 b6 ~# u+ L2 e: r* T
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ E* p" y8 k3 E  Q0 L2 W
. |- E% ?8 H/ W/ D1 s
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:06 , Processed in 0.061133 second(s), 18 queries .

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