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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
, h! S4 N/ G% `7 |# _5 A0 b) h& a9 ]SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)( g1 `7 Y9 b8 A2 s
1.准备工作; s* b6 r; ?+ M8 j
一台centos7 服务器 一台 客户端0 W) f% o* k$ o$ `
————————————————
: e. o. B9 j  M1 N4 i! L/ e1 `+ D1、验证是否安装了SVN
" E/ R0 M! d2 V
3 a1 Z5 ]% P3 K& m! _9 r命令: # rpm -qa subversion
9 Y5 f0 Y: P0 S& A0 Y2 y- C( M3 n
" u( @0 z2 z8 w3 K/ [如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_644 N( M- ]' W1 T) A3 u! E7 |. ]

) L6 n4 K: {9 }- B否则,空白+ _5 A" D& o9 W7 R6 U9 A4 }

$ g; o* f7 `3 [2、安装SVN的命令) i' p+ v/ S/ q. ?! j- w- l" l
1 `1 ?2 o7 N. k" T5 Q/ z& W  j& P# f7 N
# yum -y install subversion: A8 G4 x0 D7 w; n# B: s/ p; ?

3 m1 Q! f! U- O! r0 y接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录, E( c, n9 i9 M% H1 P
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了, ?" _0 R% v, {0 L% X

8 I% O/ ?6 R/ _% |然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ O" ~. k% v2 Y# \1 H
! _9 e$ {/ n2 T; c1 Z# Esvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)4 B- C5 |: K7 t7 V  Y/ V. P' f

7 [- B  k) Z9 O% T+ b6 i
& A8 Z1 M; ^8 ?' B& O首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
2 B$ h" Z- H- o% S3 R
' p0 G, P1 t- P7 i3 p( G# password-db = passwd& S4 D0 ]$ ~1 s3 `& T

/ M2 m! `: ]2 i1 {1 ~1 U% Z# authz-db = authz+ I6 Y$ `, w' U/ V) Q3 F. w
+ ^( g/ Y+ u: I

- C8 P- z, [- u  R% w' F然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ j% v9 u4 N/ m) S! \6 L

8 ?. B/ x& B! g2 q登录名=密码
+ v* [6 G2 e- o5 z- A, M# ^& v8 v  [, l: f5 J/ J: q6 `3 [
user=123456
) O/ G2 M* U$ @/ F+ \
' K. ]3 t, n% @: x  r
/ z9 [5 v; d* @! g最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
: F  P8 b. b' }$ B; Q$ K* j" g3 c  J; V4 g) E. Y- \2 u- W3 M
# * = r
/ M6 |' G  F7 T" U3 j- q% c4 v  y) q: B' ~$ m
[/]
; P0 f' }: V3 i& h: V! v: `
3 Q" r/ j: g" o$ @: r/ uroot=rw* s/ Z/ W3 c4 c

5 z, I& e8 @; w, L8 y) Z这是用户的配置就完成了
4 R( z& X3 s4 `. c6 C7 T  ?3 b% t: [
接下来我们就需要开启svn svnserve -d -r /home/svn/blog * m* ]4 a% _- ?) |& G4 L2 x$ }# R
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo4 j! x( c7 `( O. ~3 g

* f1 A1 n" M% V4 I) J; a使用此命令开启svn 根据自己设置的目录自行更改' f2 c3 G: ]3 Y; v1 D, g, G3 B
" _, V3 d1 a- m. P6 P8 ?4 U  V6 u
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 |  O0 f" _' a. u6 L- d
* ^4 B$ j% z  h1 t6 A$ |' B% n; Y( b: F1 O/ a+ f$ m
win下载svn工具0 r1 P1 h. e7 r! A% d& Z

  f+ N: q$ |$ i7 `/ M( T# r! M接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了/ A5 t2 W5 r) @+ D* p

0 i: r, U9 W; D$ ^+ k- G' C5 d& g5 B
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
8 H. e% \# M. `1 N3 ^输入你的svn地址 地址请根据自己的设置自行更改
" y0 x2 T0 d- S- U: C; A3 r' i) x6 F) H! }  K% v6 Z

5 _* {0 @& x8 W( @9 X8 z然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了5 x4 K1 w- x& l7 e
; E2 }/ U  D+ D: f+ D2 q
( f) j( T1 R7 L& B7 |2 b& K+ x
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)  W5 j: J" y  Z- y# Y( c. l( o

' ~$ U6 A& m: E) ?# V
7 w, U! O# Y8 q! p6 S* i
& n; V8 k, W) s可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存% H7 {' z) g1 [  s  M* C

# s' p/ y& \3 {1 z1 x* e+ V: V这时我们保存在版本库的代码就会被同步到网站根目录
4 P- O3 ?( y+ \; }
5 L5 f) @- r, G. U5 N! s8 @/ J) w* r0 W& g# i
0 Z8 H+ u3 e  c* b

* W6 c' a2 E2 m+ Q/ U
! i/ [. o0 @6 P4 W3 V4 e# s9 Q) x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
, g0 `- s, F/ K, M3 J- Z, z. D4 Pcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
6 T+ D- S6 V9 y& s
  L6 b( f/ F: j( N1 V( u8 z' ]) {: K
  1. REPOS="$1"* _% Z: h2 b& h1 ^4 P
  2. REV="$2"
    & c6 Y* k+ T/ k. J; _
  3. TXN_NAME="$3"$ w  e# v& j) L/ \. b+ X
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"! q# F& o2 B# v$ K9 q5 ]  S
  5. MESSAGE="$(svnlook log $REPOS)"
    0 L, \5 a: M/ C5 c. E5 S. X  U
  6. SVN_PATH=/usr/bin/svn7 \4 S0 u  v: g0 z) y; v
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    4 R; P  k6 P4 ?* l3 y
  8. mkdir -p /var/log/svnlog7 c+ M* T- Z# r& z2 y% K( B4 Z
  9. touch /var/log/svnlog/ssyleo_update.log
    , p4 H( t% d5 S" g  }. x& c, }- G
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ) E) t0 @0 N0 [: E; E
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ( N7 t$ W# G0 |5 F2 w& r
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    1 x3 ]# O3 q: t. F
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH1 P' T" h7 T1 v7 X" |3 g
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
# |+ L' ]3 ^) k: ^

. W/ V1 }4 E9 ?+ ^4 _  d2 L; q
  1. #!/bin/sh
    8 B3 W% ~! d- W# `
  2. #设定环境变量,如果没有设定可能会出现update报错
    % w! ]/ H, z0 J! J
  3. export LANG=zh_CN.UTF-8* D% ~7 _  F  q0 k5 T* _2 T3 x( l3 P
  4. REPOS="$1". A) x" T0 W  b4 w
  5. REV="$2"
    , s7 S) I# K5 P% J8 a
  6. SVN_PATH=/usr/bin/svn7 ?% w  n! r' s
  7. WEB_PATH=/web/project
    & E. B7 t: o  T9 l- m0 }% s5 f: v
  8. LOG_PATH=/tmp/svn_update.log
    & }  p) R7 w/ t8 p5 Y' H$ ^7 _
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache8 _* }2 n8 S" ]
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + h' h# e3 F9 ?/ L* I- d
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    * B8 }4 K* Q# I8 }
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH8 ?- @6 _6 M* R) p6 R0 ?9 D* V
  13. chown -R www:www $WEB_PATH
复制代码

# @: e' y% y; Y3 i1 d% g: ]
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
* E4 `: [4 u1 E+ G6 Y% q$ `export LAND="zh_CN.UTF-8"
& N) y3 C0 u! ?REPOS="$1"6 |( [( v9 U5 a
REV="$2"
- F( z, w: z0 ^svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ j4 l, c7 B0 _4 {! ~1 z+ x; psvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" R% w( n2 Z3 V! k- Y; }

  1. 5 e$ ]% G5 B. A- z9 M" P
  2. #!/bin/sh
    , A+ ~( b9 @) F( N8 @6 c1 Y% l/ b; S7 c+ M
  3. export LAND="zh_CN.UTF-8"
    * ~! C9 P8 u" g$ z
  4. REPOS="$1"
    ! a8 [+ ]$ L) q7 @/ x
  5. REV="$2"! y2 V5 O: G+ t
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache/ ^9 J1 u4 ?8 h! l' k; x
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

. I, u( Y: L" W6 h4 P$ T9 ^( s" |( t" |6 O$ _  c
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:21 , Processed in 0.115939 second(s), 20 queries .

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