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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
$ W( l$ G/ G3 i& X6 |SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略). o. y2 y6 u% n7 g2 n! F. t4 G( a
1.准备工作( q1 f: A7 z6 U) V2 Z
一台centos7 服务器 一台 客户端
  ?0 `8 n, y+ b1 U0 F" ~# t$ D————————————————8 k! U, ?4 `9 U/ l1 Y( R
1、验证是否安装了SVN
+ w8 a; O* C1 |. c9 F& `6 s& l5 Z3 B+ U0 b& n& q
命令: # rpm -qa subversion% f) B5 j# N+ X1 N' g" ?  T
5 a8 V' [6 e) t1 |
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64& a1 p7 T) l. K0 T* Y2 d" q  G
4 n3 J' J0 u& i% t
否则,空白
5 w+ h/ E/ m- s: B1 Y- W+ }5 ^
5 `/ m3 X. V4 c  X2、安装SVN的命令8 h0 g8 o9 I' U8 d

) h$ r  ?' U) A% F! H) g# yum -y install subversion& w# e/ g" D4 K$ }2 Z

9 A; W9 p" W) L: O2 H8 |接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
3 ^, B( _5 G5 n# d" P9 J2 d+ T创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了5 h. l! a7 c& L7 i
0 |+ J9 S  p$ r- r6 x+ I  _
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置( \- A$ |% o9 {8 j

* A. J3 s+ c, n" F. K9 ssvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
+ _5 r0 C. b3 u
$ I% Y8 |7 M" m6 `: E/ g2 B( M2 F" d4 l7 @5 c. [- _
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格0 [6 I, ]' v% d; C8 [% o& }, `
5 o) N6 V/ S* O. \0 T
# password-db = passwd
0 W0 t: @8 C) A3 [
* J# i9 L9 N" @* x# V, I" Y! z# authz-db = authz1 ?+ g( E% z# E6 L& M) ?

' a$ z6 Z5 M: X9 A* T4 P8 n( M! |  ~* A1 Y* Z7 z* R, x+ b$ j: v
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效& C* G" {% E. q- r
5 [* v( r3 H" z' |" |) O. X
登录名=密码' Y" |, {: U" O5 b& F! v* J
; r/ n2 o0 q8 c8 @9 I/ g$ I6 l
user=123456
8 }# [' a" ]9 B6 p) N) r( H8 i7 d7 d, S2 h" H. ]/ t

% e, f( x2 r" c6 O! j) y- b( ?4 J最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
1 I  O. {+ h3 D1 w# M/ e  o$ a5 x
& b2 W- ]" u( e3 f% I# * = r
  [8 k. z5 X* e  d/ Z9 U7 E" P' W/ e6 k
[/]
0 G5 o1 M( O- P2 W! C$ k& |
8 w! Z0 l  T$ E) `8 R' @4 zroot=rw+ ~5 ~/ F1 y$ I0 g3 y2 r
4 i* v) g- P8 ~
这是用户的配置就完成了/ B" ~1 o- J, y' Q3 D( z! x

# d3 z* u3 X8 e8 |1 E. [接下来我们就需要开启svn svnserve -d -r /home/svn/blog . H- E5 c+ k$ c7 x/ ?
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
5 U+ O6 S: W' s+ I9 F; @
. O- x4 i+ @# l6 b, m使用此命令开启svn 根据自己设置的目录自行更改
) M5 `- I- U( \  z. |: j9 r7 j' C* a/ L& U9 d8 l3 P: M0 r; K
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了" @9 v0 R  E, c9 B
' a' _$ p( O9 Q8 H, e, \  f
, Z: T; {# ^! G
win下载svn工具
' s) D+ ]6 C) w' u, S
: ], h3 _/ c- E3 d+ [接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
* p  v9 X. m) a& P  R* x# X1 J: h& F( T& b% ~: @: Y; u

, J$ w/ n! @0 C: K9 ~* s重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
+ r3 R3 [) x" q" z+ I输入你的svn地址 地址请根据自己的设置自行更改
  e3 T. |$ G- R' s
1 @) u2 X7 J- O2 F+ Q4 h, U, F
4 a+ j1 V% y8 t6 L: c# f然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了4 U+ P7 y+ N9 m

- j3 F0 Y. F; z! J1 E; H' `5 B( @( R, r! t' Y
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
+ i+ g  S" @# @, W+ x) i2 y7 z/ c; v, D6 I4 p

* q, L- z% T9 B$ \# W6 Y( h& L- u% ~
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存' [2 I. N8 t; O% o: ~) O  ~
% H, [/ [$ t# s6 ~
这时我们保存在版本库的代码就会被同步到网站根目录9 L/ I) \% ]& q' E' \. F0 Z4 C

  l" \/ b- d! G1 D+ z& S) A. C
+ d1 u& ^2 @. e+ O1 s1 c1 M% E
9 d+ e! Q4 S- N& C1 s7 S
0 `% k( x/ _! h$ C' M) U. ?, D) D! G5 e' E( |3 S- t/ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
  p0 c- q& d  b8 hexport LAND="zh_CN.UTF-8"
3 p$ X$ a2 H5 K! ]& I9 y* {0 x. K3 DREPOS="$1"- R( p. K5 \: k5 J* n) l
REV="$2"6 e! u4 Q4 I, L7 ?
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 P; |3 D0 j) `6 ]
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
4 ^" A! z9 W3 {& n6 J9 L
  1. + o% ~, m& [9 W# ], u- x& h
  2. #!/bin/sh  C: B* j9 ?, Y3 E8 k. F
  3. export LAND="zh_CN.UTF-8"% s, E; w$ j" x5 k
  4. REPOS="$1"2 M0 _& W$ W- |) H% G6 s
  5. REV="$2"7 V6 q1 l7 L. s# G
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ) h+ p, K% s* L& ^2 @
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
" ]" X* L0 U* t! ^4 X- ]

3 I/ A3 ]9 W; B, o" r5 g
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录% v4 R1 u/ g3 n- q, h2 O. k
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
) }! M* y( v& |! F. `; y) S. \0 p! V2 ~5 e8 D+ j5 b  E/ U
  1. REPOS="$1"9 v; C) y4 F. g+ ]7 }$ A; f4 T
  2. REV="$2"6 p* {! A  ^- N4 y* T# c6 O
  3. TXN_NAME="$3"
    , y7 W& W) m' ^3 z# Q# V5 P
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ! S: M5 M- e' g1 R/ Y0 a1 t
  5. MESSAGE="$(svnlook log $REPOS)"
    & N* L2 |: K& _  s4 Q' A$ Q3 S
  6. SVN_PATH=/usr/bin/svn
    2 _  G% H2 O5 x& Z3 q% r
  7. WEB_PATH=/usr/share/nginx/html/ssyleo5 |8 h5 x( ]& t* y/ o: t/ y* }7 D. R' I0 |
  8. mkdir -p /var/log/svnlog
    & {! v5 i' e( N; V( x/ R* _
  9. touch /var/log/svnlog/ssyleo_update.log: y( y  G8 `, j1 i' r" k
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log" W- U7 f1 Z0 C) G& Z6 x
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
      ^0 Z9 A6 L3 ~) c' q/ I
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    $ a6 {' z, I9 B$ k2 q- K
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    5 \0 {5 U5 t/ q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 R1 ^/ ^% n  U: }2 B& _9 n9 @% Y- n4 H. y- R, l
  1. #!/bin/sh
    7 }8 Z2 _" ?: n. j7 G8 H
  2. #设定环境变量,如果没有设定可能会出现update报错
    ' u' K4 y! o* R
  3. export LANG=zh_CN.UTF-8
    ' @+ I% ], m0 y8 ?! s1 R" A) X2 N' A8 r
  4. REPOS="$1"
    8 h% l8 H$ {" Q, J( W
  5. REV="$2"
    / H. \) @! l) y/ Z& S: e
  6. SVN_PATH=/usr/bin/svn- f$ i6 E2 b6 A
  7. WEB_PATH=/web/project  q) V! J+ ]; a* s4 U: ?& {! x
  8. LOG_PATH=/tmp/svn_update.log- U& G2 _. ~4 l) S/ D, ^2 c
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache' Q( x6 u# ~7 ]' u; _6 o
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + {& z. k* b' z" p: h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    0 w% b( c+ L# y4 O6 D
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, B4 w( n1 O( s/ q6 j6 w
  13. chown -R www:www $WEB_PATH
复制代码

$ r1 V  Y; {+ _! [" n
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 10:57 , Processed in 0.141074 second(s), 19 queries .

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