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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介' Z' \" q: z3 Y3 c# u% k# B
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)# n# F) s( B8 I. @1 i2 d, g
1.准备工作# `2 ]9 L; u; U& e. B% E
一台centos7 服务器 一台 客户端- s3 |9 U) G: L% {, i- r  g
————————————————1 Y" p5 z7 |8 B9 X# L- C& d2 A1 L
1、验证是否安装了SVN
6 ?. q1 z3 g/ l
- _" I8 K$ g) @$ T& n命令: # rpm -qa subversion4 c* z; {; ~  S! p7 ]1 ?
: k3 l& v1 C/ Y, o  j& p
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
- c1 }% T4 h2 c( ^% l- q5 H# R7 M$ L/ w* G
否则,空白$ n6 @" Q; r  L1 {! H8 b0 B/ _, N
8 {9 m" ^  u4 q1 r& q
2、安装SVN的命令! |6 w  q' _7 U6 r( Z8 v/ p; z
( }! k8 C/ D- T" h  @; F  w5 t
# yum -y install subversion
  B- C% b& J' C2 J# v9 N3 Z+ w% M
; _. [0 M, E! h$ i/ `接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
6 b: j4 z0 ~/ l) r* J$ u; s- R' V创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
$ d8 K; A* W# g1 v3 t# m( w( f. N1 }8 X
3 {6 p$ r1 `4 ?* G+ s然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置5 Y# ~7 ]1 J# d8 {# G- T
6 F8 E7 T9 q( T7 @2 [
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
3 t+ z0 v: h1 s6 R. H! e1 _8 Y( `* |* C
& M, h# k/ O( ^
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
( a: M$ z! O9 T; ~8 o6 [) G) e5 d& @. t1 o2 `: B# M
# password-db = passwd/ O, w2 `& m: w# k4 w7 s- ]

$ W$ K& }$ W0 A$ T. T1 L) V# authz-db = authz
( r9 M, m4 y5 L  m" {- e, h: r7 u* w8 u# p+ d+ d5 A
' A/ }* B4 V8 y! v$ o$ y
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效9 G' F( A$ B# D

" A" b% J' U7 [! p1 ]) _登录名=密码
. t# Q* Y7 D- O9 k' {* o# k( L( {" s" G
user=123456; l8 ]: l) g- _& @
# k9 h6 l, n( J. N9 ^

) H1 v; U' O5 k; J4 S! ~# S7 t最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)* g; f) T0 a0 s3 O

3 Y! W& [1 F( J* T+ j6 Q# X+ [# * = r% ]8 K9 _/ ^, n* A6 v: g

8 ~0 B# l# d4 ]: S[/]8 L$ ^! ]- G6 Z# f
& W6 W8 m! ]# z& d( Z
root=rw7 j8 w4 t% D# P0 b& j3 S; M

' w8 c4 p( m: Y( [这是用户的配置就完成了
+ C5 [# O- G# X$ ?& P& i6 f
' y; L! H+ P% l4 ?. l% ?) T接下来我们就需要开启svn svnserve -d -r /home/svn/blog
5 }/ E) U6 D, B! y( i$ E. Nsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo6 a8 ?" g  H" _/ {1 l
: q1 z  z% G3 v, y- u* ?
使用此命令开启svn 根据自己设置的目录自行更改
" v( o7 |) ~' J! ^
8 k' w% @1 X0 k+ H0 N使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
0 B1 h9 p2 e) ]% e# d
$ T  Q& M+ F7 d
$ x' z  o1 B7 F2 u* t& Jwin下载svn工具( S0 A0 x8 n. ]2 n

- w& j3 B5 s3 F2 V0 h6 s1 Z: l接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了$ [8 e% |4 z# \

/ T$ X8 [" o' x9 d* \5 u2 v7 G  H4 B' q5 y1 `! Y
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码6 n5 X  p5 n! [
输入你的svn地址 地址请根据自己的设置自行更改
! Y7 E7 ?' n, e% [6 }9 N2 D( A. ]6 G1 K4 K4 _! m

0 g8 U/ H5 H. g! X然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
/ }7 F$ I3 Q+ l- l7 ]3 @, Y3 G  E7 f: \% z8 _
7 X4 _2 g" C. M$ W, K  O
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
- ?  `* s, O1 b, z" N3 `1 A
6 {" }7 Y$ p- R; S1 t  C5 C4 Q9 d& E" t9 X% J

/ c% E/ S+ U5 W4 H. W/ Z可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
# l) A8 l3 m( C- F
/ {) J. I7 K- F2 e# `) R/ g这时我们保存在版本库的代码就会被同步到网站根目录$ M4 I2 [( T5 m2 [" `$ D+ j/ l
' ?. J( a% B. C# A7 s2 F
1 }  D# ~- p  w, ~2 {; q
5 ?, l" R. Z7 [" P' a7 w
- A  _; _; P0 {) x7 o1 |

0 ?+ r/ S, C+ v# A. {) }! {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
/ d( G* F% o; ]' Y0 p( W* @cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit+ c& o6 m* f, o

! q) {( Z9 `- N" X" r' s; n
  1. REPOS="$1"  W/ g% T; B4 `. f! z5 |+ |
  2. REV="$2"9 u3 P3 n$ s  [4 \; q$ I
  3. TXN_NAME="$3"% f! O& l: X8 h
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    * O4 }7 `! A8 a6 b2 b* Q* |
  5. MESSAGE="$(svnlook log $REPOS)"/ {) O) [9 @4 \! e5 Z) m: ]: r
  6. SVN_PATH=/usr/bin/svn8 i' J$ \; [' S% t& I: W- y+ S: V. w
  7. WEB_PATH=/usr/share/nginx/html/ssyleo* b- u6 C- w4 A5 V5 P
  8. mkdir -p /var/log/svnlog
    $ |) r4 w# T$ h+ P
  9. touch /var/log/svnlog/ssyleo_update.log/ @: A1 o1 M4 u+ F% L7 R
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log; `; K4 J% N! R
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ( ]0 a" B) E6 H+ x" A! Q% x% I
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH. S8 _8 M; |+ S2 C+ G
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH* |/ W' Q/ _6 U' [+ J5 k  _; I, N" A% I
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
! w7 j1 V& \' f; ]
& D, w/ G7 i# n, R* W$ }+ F( ^
  1. #!/bin/sh5 m( p1 i+ k. J/ ]& R$ o0 q
  2. #设定环境变量,如果没有设定可能会出现update报错" a5 g% q6 u5 P* p8 @
  3. export LANG=zh_CN.UTF-86 w: R+ C# j1 d7 T% N; h
  4. REPOS="$1"
    & T4 Q9 W5 D( ~. I, e0 J
  5. REV="$2"& `8 H% u* [1 q# Z% A1 H7 M
  6. SVN_PATH=/usr/bin/svn2 y' X4 D) W+ P) ~: v
  7. WEB_PATH=/web/project
    + a7 R7 m; v/ P7 j( d, ^6 ]( b9 f
  8. LOG_PATH=/tmp/svn_update.log
    + w! |( A! i+ b# w
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ( [% @- A: h; L7 K' C
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH7 Z) ]# D. @& B
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH5 A7 b, I5 B7 t6 t  i% ^
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    % Q" k6 r: x/ [/ B; G
  13. chown -R www:www $WEB_PATH
复制代码
* O) _+ z; a1 ?+ d
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
; W4 q: O. H5 R9 A" a# Gexport LAND="zh_CN.UTF-8"
! B* ~& K# E3 S" gREPOS="$1"
/ s2 s2 e  j. UREV="$2"
- ~& {9 {9 a& lsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) W/ x  S! T/ vsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache& ~& Q0 I, Z# }9 Z7 \
  1. * H; L2 Q: Q5 O4 h  G) p7 h" v
  2. #!/bin/sh
    2 W% O2 H1 a% @7 @
  3. export LAND="zh_CN.UTF-8"
    $ Q$ L% g$ l1 @- a7 D6 c: T* D
  4. REPOS="$1"0 a& {' o* O- A% k" k4 h
  5. REV="$2"5 S( ^" T5 r, E0 V8 I- `
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    " v7 g- P  K9 o* b
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
9 M' K: l! U0 U7 u* O; L* T
% ^# h' D' G$ c$ D; D9 L
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 13:34 , Processed in 0.051289 second(s), 19 queries .

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