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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
, N. ~- p, K) o$ JSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)% T& F$ o; Y0 ~0 E# y$ C5 q
1.准备工作7 S4 B) G) _3 F: O) `, A
一台centos7 服务器 一台 客户端7 C" ~( e& ~! k
————————————————
9 m% I) a6 W. J+ E( W/ z( Y5 L+ U1、验证是否安装了SVN
3 O' B0 f+ `7 [/ t0 O" E
+ l- f4 J+ S# e- S8 ~, L$ S- E命令: # rpm -qa subversion0 V" n* v  ]2 h* ?7 P, r
1 L& Q3 X' V1 v, W' l' c
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_641 m; x4 E4 ^3 u+ m7 m
% E* D  _$ o: h# S8 d5 j5 I9 o
否则,空白! V. Z) Q1 k! q' |: x

. Q, M4 U  k4 K; G, z" r6 j2、安装SVN的命令! n; {6 z4 s1 P& A! B5 M

0 _- j  j: l, Z- Z( v( u/ g# yum -y install subversion# d/ m4 [6 E1 g8 ~) K

# T  [% M# l- [- S接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录! H& }* |9 F; l4 G
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
8 F( |; t. t- n0 R. b6 ?$ y% A
7 ]4 E0 O6 O. A( J+ c然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
6 p9 w: Y( l' I! C& f. m' U& T. J* S% x# H% l9 i) T6 Y
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)" ]& k" z/ u4 h

# V5 h0 Z7 L- L; V+ ^* m6 e2 w7 K1 x. g0 r0 K
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格0 u" a/ S1 f, A: ]  M5 s

# I2 J4 J) s$ }) F5 F& f# password-db = passwd  {! A+ u' F) o- k
% Y& x$ h- R& `+ v: a. j
# authz-db = authz$ t! f$ x! U8 }
7 X, _9 W1 K9 ]) D4 I
) _# o8 d. }7 v$ U1 b! x
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
4 d& j7 R! o( v) R: n" f$ V
% k$ H! [3 x" r登录名=密码
& D; z/ H" _- U" d+ Y( [( D1 X; w9 I* y7 ~' c2 c2 T3 h, [
user=123456
. \. i( E' u  [7 x8 {
! J4 }8 i8 B$ i* Z. ~7 P/ \2 Y$ j2 w( d2 B
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
" t$ C: d: J$ |% }/ A6 W# v- J6 Q& q; l/ A4 D; S9 B
# * = r) x$ r9 D! J( n# R4 u
' m: e. w0 h: v! m+ c) O* L' T8 B
[/], B( Z9 j. |; u. b$ ]/ ~
( ?+ x+ t( q$ o' H- F
root=rw$ K+ e: G( C2 C5 |

& Y. B7 C! ^1 d这是用户的配置就完成了
- u) X& m/ P4 L  N
# W9 g9 p* `2 \0 [7 i" `, P0 ^* f1 i接下来我们就需要开启svn svnserve -d -r /home/svn/blog
( T* Q$ b% h' e/ m: vsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
* h: Q) w5 d; R. D
& I' H7 J  U  l2 _0 F0 i& ?2 s使用此命令开启svn 根据自己设置的目录自行更改
; v7 f( B+ a- X( q6 }* K. |0 p0 C. W$ i# J; a/ f( C) t- N" ~# [
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了6 d  m4 r+ i8 I

7 l$ d# l+ R& L( q4 H% j7 u
& z  @) u9 P) \0 P+ }win下载svn工具
0 H; W" Q: c3 g1 P; C
- u# m. ^5 x$ o接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了  f& y' H8 g1 T- Z# O: K7 |
- S0 l! Q& v& g- F8 |

. ^. W" _/ a3 a8 `6 l/ R3 z0 W5 ~重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
( Y1 `9 X2 u7 t6 m2 K; g- h输入你的svn地址 地址请根据自己的设置自行更改. N9 U& @% n' p$ z9 P
" D/ A% \* y' x# e$ P

* @$ u! d8 _: W0 X# M$ T然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了9 u' o& ]( r2 M( J% n: Y

  ^0 t( M0 t  T. V2 {  I5 }+ G
$ E& _# s1 j$ d& @; k1 z$ ](svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
4 ?; t0 k9 D; T) l) d$ c& P' y* j# E6 v& W5 n# o

* Z* m1 `8 t' e; Y; J0 o! v
* z* p4 r: u  d* x可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
  r% t" [/ p/ D1 {9 \. y9 K5 S& O( r1 _$ |, h% `
这时我们保存在版本库的代码就会被同步到网站根目录
: c: E2 w# S6 U8 z5 v' ^' `7 v$ ]( }/ `

: O' D/ G& w1 S/ |* \
  |( E# a9 r" p$ f" ]- d# r# I" s% ?  V# \

% k, \7 t( Y  r$ h, u; Q! j* d9 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录' X; p- ~" W4 W5 e
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( g" m3 [+ @6 o# ?& G+ X9 D

4 \5 e- f! `& I3 ~+ G2 R
  1. REPOS="$1"/ a: w. e' [! h0 i
  2. REV="$2"6 X' O1 A* ]% V" P0 P
  3. TXN_NAME="$3"3 @5 h( a, c# X6 ?6 S' C
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"! Y' E  @) e! ]' f" d7 e0 Z
  5. MESSAGE="$(svnlook log $REPOS)"2 w' b; }; g8 e- O
  6. SVN_PATH=/usr/bin/svn9 _- I7 R1 a  S+ @# J
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    " f3 n4 v7 @8 W
  8. mkdir -p /var/log/svnlog
    ! \2 L, g5 x6 @+ c
  9. touch /var/log/svnlog/ssyleo_update.log
    " A% M( j+ H% G0 u, V) F7 A
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log1 m! N  U! J/ ?, b
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    7 h1 d+ F- R/ f
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    4 ^& h5 ]/ [! k: p) E% t
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH; t3 {1 A1 k+ d% I7 q5 Q1 d3 X  n
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

3 E8 c* n: \2 d) c% C6 |, c" n6 W! n9 V
  1. #!/bin/sh  b# \- S7 Z1 v+ }
  2. #设定环境变量,如果没有设定可能会出现update报错
    # m( @' ?) l+ I6 A  {/ R
  3. export LANG=zh_CN.UTF-8
    & x4 ]! P1 K, d- R! D! M
  4. REPOS="$1"- p. }+ ^# ?$ T! J6 V
  5. REV="$2"/ M5 U5 C+ K+ z% c
  6. SVN_PATH=/usr/bin/svn
    ; \/ p- c% s: \+ v% K5 S9 H7 z
  7. WEB_PATH=/web/project% M0 i) C8 P& i6 r' M
  8. LOG_PATH=/tmp/svn_update.log, P5 O/ \( M1 ]
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache; i5 o  P7 q9 a, _$ T7 S
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    6 l  d8 L2 M; {' `& I  k
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    & M2 ^4 K4 b' I8 Q
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
      r: h" c& S5 ^2 t- h
  13. chown -R www:www $WEB_PATH
复制代码

! W5 p/ F0 T" X3 W9 i8 X# x" f5 S
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh! \* s9 S2 I9 C; [' a
export LAND="zh_CN.UTF-8"
# p, [, f! I: b) _2 G5 b/ C5 UREPOS="$1"& R* w  h: d  R4 {8 }, ^
REV="$2": M. y' x* M. L: e" p
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- V& ^. a/ |0 L% m, s) Wsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" ]! k. w- G- N/ a4 f

  1. + J0 L1 {& a" A; f0 ?% X
  2. #!/bin/sh
      H3 s6 D! Y# c9 }2 Z3 M
  3. export LAND="zh_CN.UTF-8"& \+ I3 V$ R, c/ w- Q1 F7 ]
  4. REPOS="$1"" g9 m  j" @7 {2 _# ?. L# l1 y6 M
  5. REV="$2"1 J9 Z+ j/ A8 r- l
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  M* p- G9 j. x6 L3 H$ Z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
0 R) k: s/ [2 U

8 d' W2 F" d% s; ~
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:42 , Processed in 0.053924 second(s), 19 queries .

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