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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
5 z4 z3 O5 `: o* wSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
, e7 }( |7 J- N0 M1.准备工作  x8 K# o7 @- `3 ?  C
一台centos7 服务器 一台 客户端0 Q4 X( x. f" k( I+ F* A
————————————————
# ?! k% l5 g7 a1 N- E1、验证是否安装了SVN$ i5 A( @( _& l& V7 t+ d
% L  ~1 ^( h+ d8 O3 }% V
命令: # rpm -qa subversion7 k) f; |, h0 K7 u+ t* g
7 Y: D; d- `9 g  e4 e8 U7 }
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64# n3 u" l. Y8 d! A. h0 J

% R+ e$ E6 ~: H* C) c0 n否则,空白
% f* x1 K* a0 m" V
0 `; L+ u& v" l  B" ]) {- g/ S2、安装SVN的命令, j9 Z1 M8 i8 F! [6 C
8 c  `8 [( V' a/ }) a
# yum -y install subversion
2 p* j! n. Z3 Z4 G8 c& L
$ ]* N# m) L/ E, x/ Q接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
. W2 z  g+ ~0 p6 X1 J6 |- O4 u创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
- ~7 F# n8 V5 J0 O6 K) r" V
, t: t$ q  ?0 j: ?0 t% ~3 ?$ W0 ]然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
- G( u# c* K8 K( }8 a9 `7 Z) i6 W8 p  Q- |( A4 ^" b; t
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)1 U4 p* T, g* R) H, ?
" y) F4 f$ E  a1 |
" r' c& B" Z% o+ g5 {0 W0 o
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格7 G2 p2 Z8 r0 z; _2 I1 V

( s0 q2 U! W- \, T1 _# password-db = passwd: t6 x( l; \3 I* W+ K" n0 }

" s0 D; C3 E: c. r# authz-db = authz7 Z, H; j: K7 L8 U

& R8 L  j8 f/ P* F  w: _. Y9 Z3 W+ z: W
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效& F4 Z1 T1 \. ?# w! Q6 L- Q' |
' j3 |( v) z- R0 w+ H, \
登录名=密码) [/ i, X$ e! ?/ s2 a8 i
: T5 \& C: K1 z6 D8 Q/ {
user=123456
. x* S. i1 _- o' \) B4 G7 M) r1 s' s  G7 E

9 y# ]3 _) G2 b% ]$ [最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)+ C5 L; t. U. {0 u0 Z. @3 R
! Z0 J! Y5 ]1 _
# * = r5 z8 J6 U% D0 [  z5 t
4 S; z* j% f" M, v9 S6 k
[/]6 O- K, Q1 [; g, ]* t

5 z. t7 }- g! rroot=rw8 P+ z* ?7 P8 [4 F( ], E1 F  [

8 a8 m- q, B  ?) m. J" m+ t) ~这是用户的配置就完成了
' K! c1 G5 |+ {- A' |/ E5 p# F  z, L
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
4 V- @7 K! B2 _$ |, dsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
" @$ q( @2 Z: ?! r1 f' Q7 Y, U5 L3 w/ T8 z: H/ |+ }) |2 `
使用此命令开启svn 根据自己设置的目录自行更改
3 A3 X! u  V! N/ N; L4 m: K& N- G9 a+ f( s* f3 c
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
# V# M- N* f7 M4 p
7 j1 v4 e9 F* C2 f! M7 k1 s
1 E# g& E) m% d+ a1 e& S- dwin下载svn工具5 W" ]6 ]7 l( d: J

" A' T- u" J; \" p0 ?" }接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
3 c: z2 ^" q4 O* ~" s
& f9 n/ r. S1 w6 n" S% X7 h! `) k
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
# a4 I/ v' Q  ], G输入你的svn地址 地址请根据自己的设置自行更改
% i2 j# @$ Z9 U9 Y
4 H, M( ]" ]+ \, H! J5 \  a; `, H1 }1 Q5 h
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了( ?2 ]2 D) u7 `
9 V2 O! ^$ p8 b  k+ T

" u. I% O& S! i6 {/ T0 S(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)4 g5 f6 x/ G0 {: w

. _/ {- ?: m! [
& P1 L! ]0 J8 r. K% A4 J9 X
$ g$ \" W. c6 Y3 B  Q1 Z$ f2 v7 o9 l可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
2 M0 ?  ?. s. ]8 H( M+ E& J. @- u  b. j! m
这时我们保存在版本库的代码就会被同步到网站根目录
" }( ]2 d) a8 z, ?  a. Q0 t. i1 `: k: o8 ?  s3 h! X
3 X8 @9 t; X3 \3 |) O
$ @) Y# l; X" Y1 y+ D2 F: c+ f9 U" X

! }# A$ ~5 T; K* ~; \- l" z; ^; ^' C: h8 C, a5 l1 Y9 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
% W8 O" N8 X* o& R' n4 q5 U8 Lcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
( m. q$ ~! _; ~2 u  b, A* q1 N
$ _5 B% k' P8 E: A4 K* X
  1. REPOS="$1"
    - m6 |. P. b3 {  J1 r* P8 |' l
  2. REV="$2"$ c" n& J2 x1 t' j3 O
  3. TXN_NAME="$3"
    0 C9 l% L$ M" d3 R) I3 J5 D
  4. AUTHOR="$(svnlook author -r $REV $REPOS)": h1 V: p- `" M' E" |
  5. MESSAGE="$(svnlook log $REPOS)"
    6 |4 r6 I# V" ?+ G8 K* L  Y
  6. SVN_PATH=/usr/bin/svn
    8 ]6 i0 V& f; B) \' ]0 N( V
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    # k5 a! B2 c) _2 W' P. q
  8. mkdir -p /var/log/svnlog
    & j: m& A6 C: X$ A& [, j
  9. touch /var/log/svnlog/ssyleo_update.log9 z/ ?) o' ]% I% O% H2 P
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    1 x$ c* @' x4 q2 R
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ( U% f. U: j* R% h/ r
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH: @/ w8 X$ \5 {* Y) ~' ^) T
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ; Q) N* C' q+ s2 |: {8 q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
6 l8 X" O  B/ j  T
/ U& u5 g& _' q8 l
  1. #!/bin/sh
    : j+ _& I4 U' w
  2. #设定环境变量,如果没有设定可能会出现update报错
    + P  [. A% l. Z+ j" R
  3. export LANG=zh_CN.UTF-8
      g/ M1 \! h: K# {5 g; s
  4. REPOS="$1"
    7 X6 `; q+ i. c
  5. REV="$2"
    6 e, q) A5 p! X, g- N" Y7 x
  6. SVN_PATH=/usr/bin/svn% i4 I4 f' q; l$ j& O1 a+ F
  7. WEB_PATH=/web/project" ~7 g9 N% D& \8 O8 X9 i; }' `
  8. LOG_PATH=/tmp/svn_update.log2 ]$ D1 S$ `  x6 p" e% o% N* f
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    8 R- P4 H. V# Q1 t8 j
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH( g) w1 i8 X7 e* \1 `
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH) d- g; M/ u1 Y. ^. E
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH" C. T# f" q" [& U" T/ K' R
  13. chown -R www:www $WEB_PATH
复制代码
1 x7 T) w& |  Y3 K; v' K  \
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh) U* d( {1 G; i; F0 x# r
export LAND="zh_CN.UTF-8"
3 ?* [6 ]# ]" u0 zREPOS="$1"
( ]$ F* E$ {% ^/ n: k- X1 hREV="$2"+ q) @0 I4 |+ v  N( G! a) D. n9 r5 ~
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
. o: K5 H3 u, d: Z$ Xsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 [6 T, [0 s; B, O# ~- a

  1. 0 F5 F; E% Y( X6 Q% `
  2. #!/bin/sh% q$ @; N" Z0 x1 z- m# o1 K
  3. export LAND="zh_CN.UTF-8"; c( Q$ p. O: W8 a) N  ~
  4. REPOS="$1"
    9 f$ t5 }( _$ S3 J& w
  5. REV="$2"9 B2 E5 F; B( _: W
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache: I" `: x: E' U" m% y# u( F% k2 C
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

4 F6 M, P9 ?5 s5 s: w- w1 J" N- H8 n- B2 ~  N! U' f
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:36 , Processed in 0.063258 second(s), 19 queries .

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