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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
& b5 [. x6 q( d  `$ cSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
- g( m" _/ t. u  t2 ^3 ~4 R5 |8 h1.准备工作) n0 q' W* {3 x$ {) F  S
一台centos7 服务器 一台 客户端7 n$ k8 g0 P. _1 L5 q( [  }2 q
————————————————
8 o0 ]: v/ V7 m$ J8 _7 V4 w3 H3 c1、验证是否安装了SVN
: z' T- G3 J0 R. X
. i: ^( Y9 z7 N8 s命令: # rpm -qa subversion
/ q* @* V1 z3 R  x1 I
9 i. u4 d1 \$ v0 p5 p如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_649 V9 f5 r& k0 L* K% G  s4 ?: A/ H
. i4 ]$ b: L' Y0 s. M" j
否则,空白
) K( p7 b- R0 f1 d6 h, i# l/ E$ E1 M, d; q, s0 ?' N9 X% H
2、安装SVN的命令' K: l' p( y( K, G7 i- s* B& p

1 F- W4 }& k9 L5 V0 E7 [2 U# yum -y install subversion+ |( \! p9 ^  B! n5 m  |/ H9 h0 n

& S) I- L7 ~7 F+ h3 C6 B接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录9 w$ u6 g0 F( @" _8 A( W
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了( H/ U+ }2 i- ?5 P$ E

- k. f3 v, I0 s然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
5 d, q2 }) z, Y' r/ @0 m
% M% E8 G4 j/ B7 Bsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
' k% O: S0 Z( q* F9 ^! R! O0 J7 o& \' ?( T: a- T0 x5 V) s3 C/ z& z

: a* @  W' A+ L; s* J% @. j首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格2 ~% D2 k5 S/ a0 u$ z( B

: C7 j2 f& D+ J. b( ?2 |# password-db = passwd, b$ h! ?( U5 ]- e) {
) N9 M+ _+ V* J, \* w/ {
# authz-db = authz
2 {/ ^* e. T1 }+ p
$ z+ w2 E( s& S7 p* T- Z9 \' Y( A+ q! G
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
( g8 r& E# e3 `3 r3 N8 L+ s; }
) u& f; q- l! c3 H4 i8 I登录名=密码5 e" b5 R: }$ V) c3 r3 [: P" z* Q
( s6 I6 \" e# J0 k3 |
user=123456
" t7 @) r5 x% Y3 A: f4 a+ s$ N' Y

6 H+ ~0 Y2 V5 P1 t0 M# Q; J最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)1 B) g; o! x. v  h" C2 f
- N8 }& I' G. r  m. C$ X: T
# * = r  n% e8 R) k% ^: _! Y3 R

3 y2 b: H# ?' V6 C' I1 B[/]4 ]% F! ?8 V. @3 {! T

0 K% ]  B7 C4 Q& Nroot=rw
6 J; c3 v( c" h3 \3 p8 V- a3 q( p' h% Y5 y
这是用户的配置就完成了- I# h& _9 G( f) |9 @, [  b0 r- ]6 r, Y

+ O/ x& Y# W) u& ~1 f接下来我们就需要开启svn svnserve -d -r /home/svn/blog
2 h: P- D5 y. H8 s7 [0 isvnserve -d --listen-prot 端口 -r /data/svn/ssyleo3 |/ s4 G4 B! c. E3 O- q

! W( N* y! }1 Q( q0 l* g使用此命令开启svn 根据自己设置的目录自行更改2 Z; N" {4 I5 {% W7 B9 L# G, m$ ?
0 H! n* d" b# Y, W6 Q; d0 c* y! c
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了! n2 R7 X4 I7 W) Q2 f8 }* A) }; L( o
0 `0 K5 q9 z; G

3 P6 h8 y; U8 d7 vwin下载svn工具
# `6 H, k7 C, {$ h! s6 i* ^  b/ \: e$ y8 _: W  Z4 f
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
0 V7 ^8 A$ }" Z% \5 U- g5 k" H+ P/ N! J
7 \* y' e/ Y" [: Y3 F6 `
2 t! @3 d6 Z( N: ]5 J# M5 ]重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码* n0 w# {5 H) E2 T' ^3 M6 G3 [
输入你的svn地址 地址请根据自己的设置自行更改2 W5 A* A7 ^0 `* i

. A+ f  ]# g% y8 ^. q
/ Z3 u* F+ [3 v) ]然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
. a! ]7 c- D5 f, I9 C: b" h/ I
* S9 p  Y6 f7 S3 d3 s, l
8 a8 \& S& y! g6 ]4 `* I' S* F, T(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
& u4 ~# d& z& ~; W& O$ }. i, X5 C
& k2 z4 X. M1 v" G' E9 J2 v- V) t( B" ?9 V
9 V, n1 ?2 C: [
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存' _8 ]" a. y0 t% ]+ n- e

2 a% [0 J9 F- O. v# E这时我们保存在版本库的代码就会被同步到网站根目录6 u  d0 Z8 g% N( T0 E
( e9 x% X1 o5 M( V8 B; Q

- k8 M/ e# O6 ^) Y; I; X8 m) ?- L3 g; ~

- X" Z) g) Z  V) ]5 E* V! ^$ ~* q/ [/ y. u$ c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 显示全部楼层
配置同步web目录
' }# [9 L% \6 r0 F# _cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
+ e- }7 \9 C( C5 j& \
# U( U% _5 K0 q3 c
  1. REPOS="$1"
    " C9 F: B. `& W, O! F' K4 c
  2. REV="$2"6 t( [9 Y# R, S+ I  L
  3. TXN_NAME="$3"8 p" k8 G/ S( o& v
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    * ^6 f+ e/ [5 I6 R) V
  5. MESSAGE="$(svnlook log $REPOS)". h/ `1 U. I# q" |
  6. SVN_PATH=/usr/bin/svn' L, u9 z/ T7 s# ^" l. ?/ ^5 Q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    - W' t3 @) g0 L, G
  8. mkdir -p /var/log/svnlog3 F, H* H" z1 N* p5 p$ f' U
  9. touch /var/log/svnlog/ssyleo_update.log
    1 W* @6 u$ e2 }, f2 l. H
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log: g0 g+ ~( v. u) ~8 x
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ! V5 C$ b6 G3 S9 l- S
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    ; @# r2 v" y$ U' o4 c  O# I8 |
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH' x& m* ~) q5 J! }! j  n; ^
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ ?5 D& C& q% J1 _

. r" k* Q( ]- q  K1 |
  1. #!/bin/sh
    * C* }$ j( w8 @: }' F/ \
  2. #设定环境变量,如果没有设定可能会出现update报错
    ; v$ ?  }/ Q3 W
  3. export LANG=zh_CN.UTF-8% h0 [0 W, F3 {( O0 D4 x. r& ~5 |
  4. REPOS="$1"
    1 t. ?& g7 ~+ H+ {' _
  5. REV="$2"2 ~7 |' c2 \3 B7 @& K
  6. SVN_PATH=/usr/bin/svn
    " M+ h: h. e, M% w' U0 ?' \9 f
  7. WEB_PATH=/web/project
    5 l& W( X3 _. ]% t
  8. LOG_PATH=/tmp/svn_update.log
    7 ?$ G! ?& c' v3 _  [+ Q/ \4 ]
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    9 ]! Q- e3 y  v5 a3 u
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH. J% A5 t9 \& M' ~1 `, z0 O
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH4 |" O# I* S  v7 }
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH8 o* Q+ E7 r/ Z/ f# {/ g, V
  13. chown -R www:www $WEB_PATH
复制代码
8 U  B* D+ A$ G
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 显示全部楼层
#!/bin/sh2 Q4 r8 w# [( B- O$ J( m  M
export LAND="zh_CN.UTF-8"
; h" n! D/ _% z" o8 K& g  SREPOS="$1"+ V! p9 ^  T  G
REV="$2"7 N; }3 t& l; v& U5 k) R
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
! {% M8 ?  j0 W( i6 `' w" |svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ A2 Z9 s' C* L. [3 \9 [+ Y7 L4 w

  1. : e, d, D; g1 C% M+ i4 ]
  2. #!/bin/sh
    9 C- _5 ^6 L9 A8 x# |5 e
  3. export LAND="zh_CN.UTF-8"" \' P, E* x. V" x8 w$ _. x/ W
  4. REPOS="$1"
    1 n9 n* M& l: C
  5. REV="$2") f# t' b0 a; B
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ }/ x8 G$ Y/ `# z& f4 Q) {
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
8 h+ L+ h5 v7 R8 K2 X( a) m

% o' X  b# S2 X0 n' p' E
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-4 13:21 , Processed in 0.108268 second(s), 18 queries .

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