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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介  K. J% n: H2 X! G
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)- s& Y; B. b5 a' k; x
1.准备工作
0 K- M2 j& Q3 `$ I' `# i/ t1 s8 O一台centos7 服务器 一台 客户端
! y; a3 b/ N" S5 |————————————————
& u0 ]5 O( F$ J9 o0 q. p4 l1、验证是否安装了SVN
3 G- v4 }- g- i# V8 {4 C
4 ~' |" z$ V6 o. L命令: # rpm -qa subversion
) o) h- U6 x& B+ m7 R% Y% G* t4 a2 m) h& k! L. e7 {5 `
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
+ m3 q4 ?  v/ |3 ?5 P  U8 O$ [# w; G0 Z, ?" Q
否则,空白: i' C+ S/ o6 L# Z; [2 d& b5 K" ~

$ [( S2 P$ l2 x, K9 g5 G2、安装SVN的命令( l0 r6 W2 h! ^2 i* i& M5 C
, M$ ]) Z& x+ `8 b' z
# yum -y install subversion
2 U& Z3 x- G# k3 ~' M) j2 {/ I  a2 ?2 j( z
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录9 D" g* m- r5 C- I3 i: J
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了; ^( G0 N  o8 u2 [/ ]' o
; n$ G9 [' c  t2 M, j
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置2 M8 w( X8 p. j$ U5 W5 h; ]! G) {2 z& o

, ?( R, V7 a; J, t/ i& @4 vsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)3 z" a7 G0 p* V) k9 K9 d) i/ p
+ w5 l- ]+ L' i/ R9 P) _
0 W+ M' Q/ {# y  t
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
: w/ O% x/ j$ I! g4 s9 s5 b5 m% H
' p  a8 V5 I! L8 R: X% N# password-db = passwd
3 ?2 M  r+ \) E8 ?. q' R8 j  C8 C; j% o5 B8 a# i3 P& z
# authz-db = authz
. w7 m7 j5 C0 H$ u) }3 F6 W) r6 ~# Q7 a  e/ H# Q

' U0 k- x9 h/ t4 L: l然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
2 q5 B' e& C/ R" F; R; `
& k+ q0 _  g1 p( v! \登录名=密码- w# c  x2 }& ^
' b7 m* ~3 g# [, l  Z5 g
user=123456
2 |3 h! |  T' a& t( a' f8 S8 u% s7 U3 \; l0 m8 W( F$ s

1 V# U7 A/ A7 F$ s最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)2 i3 |; k" W0 n
; c. y3 y' U3 j" ^( E6 y- f! b
# * = r! b$ O" [+ |0 d; ~
$ ~9 E# S/ O& s5 R% x8 p9 @
[/]5 d3 m2 a  A; ?) }1 S! D0 }' ~3 t
1 [8 g% g2 U0 y5 I7 Z2 F  }
root=rw
7 ]: Q( H5 Q7 N+ W( w7 t0 L0 Y7 W; P: u( l& w! j
这是用户的配置就完成了7 y) S" W3 ^" ]3 i1 k% v: q
/ I( w" N) ]2 w  x6 c8 u
接下来我们就需要开启svn svnserve -d -r /home/svn/blog , Y+ o( C  [/ r* ~2 Z
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo: o& f+ N, ~& g* A( F

+ F% i3 j1 v) O, t; x! K使用此命令开启svn 根据自己设置的目录自行更改+ Q, ~4 {3 |" M  ?$ w7 L4 M* H
0 p& v4 ^8 B, E& d2 u) E9 Z7 G
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了2 k7 J3 w0 U! {4 W+ p1 x

, p% j3 F. ~+ Q: M& V
7 |3 J8 @+ O7 E+ D7 l. g" C6 ^win下载svn工具
7 o/ T$ o4 r# @6 E
1 V; S3 ^5 F6 `接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- A3 J) [& k; N9 L

+ Q+ h  c# r" D
5 U* M+ l- u: h重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
) C, n& ]) u4 Y8 H- u" t输入你的svn地址 地址请根据自己的设置自行更改
" a. |! s" z6 n" \. r- c0 i* j9 n
" r% ^9 }/ y! c( c9 l7 j% I
, p3 B1 @" e5 @' b2 V% A然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
& E9 Q, e" \- f) Z6 w
6 z$ ~$ p' l& J* N+ P! W2 ~
7 g- z- i0 A: \; Q4 o) [" G(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)8 C; D- z; |  k! [9 E( p- X

; o" S  C; O; X" J4 x! i( D7 {  Q4 I6 `! i! O# T  z
3 s1 o1 U) L! B  o2 [2 O
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存2 @% m# S+ i3 d7 A% ~, F( r

& A! y* C4 ^; J+ n这时我们保存在版本库的代码就会被同步到网站根目录
/ f. D: K2 M' `  T7 L6 u( W9 Z9 r6 H8 [+ v2 F% L+ @

4 {$ A$ K1 a7 S' u
1 [5 W) d' v4 E
1 p. ?- s3 ?  w8 R" v+ U% E
; `- X. \* E8 S8 `+ ~2 g' p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录/ V; U- J; \( Q, T, }
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit, |7 M) D2 D, Y4 i5 [8 d
* u5 W& @9 t3 a2 s+ C
  1. REPOS="$1"
    $ R' y+ ^8 t- t! v3 G
  2. REV="$2"8 N' Q3 Z3 n: m- m. l7 k6 d+ M" }
  3. TXN_NAME="$3"! G; p' T4 g6 b& G% g1 j9 M" K$ y% N
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    . K5 s' t' v# m$ P
  5. MESSAGE="$(svnlook log $REPOS)"
    # u5 ~! A7 d7 r1 z9 e( n
  6. SVN_PATH=/usr/bin/svn. N  i9 p1 S! U
  7. WEB_PATH=/usr/share/nginx/html/ssyleo% Q5 \( [, [' D) k, n) [+ \
  8. mkdir -p /var/log/svnlog
    / o4 k* T% ?7 u9 C/ H! y
  9. touch /var/log/svnlog/ssyleo_update.log$ F" `0 \0 d% S% _5 M. ^" Z
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log0 ^  h) c# a! G& T, @
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    / [" @0 E  @! x  Z* d' O; l  ?
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH7 Y5 m8 Y7 v) i0 n0 o0 u
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    . U$ b% {) O7 y* P9 y3 i* s0 {
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
# b# B+ Q0 T0 g( B) R, Y
& ?5 m) G% g1 \+ V
  1. #!/bin/sh' n: H* r" }5 S: X% a5 v
  2. #设定环境变量,如果没有设定可能会出现update报错
    3 q+ m& K; Y) y) i) @# U
  3. export LANG=zh_CN.UTF-87 f' T$ i- V0 e6 _6 F* |
  4. REPOS="$1"6 ?! ]- P6 w+ r& ]: }
  5. REV="$2"$ Q  M  p" D/ k8 F, _
  6. SVN_PATH=/usr/bin/svn
    / K, t/ a( c; F5 Y. P7 z  U7 r
  7. WEB_PATH=/web/project$ S# s/ h+ `2 c/ l) C2 K2 Q9 b
  8. LOG_PATH=/tmp/svn_update.log
    2 \$ s1 G' t; _( |, [+ h; }
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache" |3 h6 [! ?1 Z1 m1 Y
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    . C" K9 [( B- ^$ p! c
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH# |7 C4 a; j8 j% k7 R; x1 n
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    # V! b5 V4 O# H/ v6 ]& h3 \# K
  13. chown -R www:www $WEB_PATH
复制代码

& p6 h1 W* g; d- i7 I4 w) o
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
9 {- O) _/ {& }2 D9 O5 Sexport LAND="zh_CN.UTF-8"
# J* S, s0 U/ j6 ]7 |REPOS="$1"
) a8 r9 X9 _& KREV="$2"' M: u# O$ d0 \, D
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache' L# r& S$ a" A: k  I
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
3 e4 S6 i, I8 V& V  C8 R
  1. 7 ^! ~# s- @, @! T# w: z- o
  2. #!/bin/sh% l  g% B# K3 v' D7 s6 K0 t
  3. export LAND="zh_CN.UTF-8"
    % G: }6 t+ P8 q! o) G
  4. REPOS="$1"  v9 ~: `: i. ~0 N# [4 M
  5. REV="$2"
    # Y# `4 z5 \8 w- O. I% o
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    6 j( H# k' b3 p4 m
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
. p6 g; T9 e9 {3 c: ]# i

/ U4 p0 C! ^' b
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 15:33 , Processed in 0.118911 second(s), 19 queries .

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