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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介) @* P+ ~# |0 k/ _
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)0 {* ^% D. I) A: p% i0 U
1.准备工作7 O2 b0 x3 ]. E1 k# C8 p+ z# \
一台centos7 服务器 一台 客户端3 C7 w8 ~( `7 o
————————————————% K/ Z: S" ]4 Q/ U
1、验证是否安装了SVN
! X' @: ]: n& r6 ~0 _8 U9 V% J0 P% F0 H. u) Q
命令: # rpm -qa subversion6 ~6 i7 }3 Z, ?7 X( H. y

% l4 o7 O; H- Y8 s, F( o1 A如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64& N) n6 f3 n- x
0 p4 M/ }& L) U2 K4 c" w
否则,空白1 J7 Y/ M& c- G2 @& m7 p: B  j
0 z- V! W7 c/ W
2、安装SVN的命令! f1 i% l/ i9 q: _" _5 s

" |; J6 |5 C- Q" [5 z8 \# yum -y install subversion9 b9 F+ b$ t" F/ ]' [
+ |" `7 U# p& B. S- @( O
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
5 m, y* a3 Q! w" \创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了) E! x% y, O+ n2 b9 }* g' R

+ [, y5 I6 B9 N3 C然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
# i' Z0 L( {3 p7 V% c6 |3 m$ Y! U8 Q) C' N3 o; J
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)3 f; K' Z+ u: _7 _! o7 Q" ?

& x1 ~; I# E2 Y; q* L3 ~& K  x3 H1 ]. _
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格& x5 T! Y" B0 ?

) E, ?4 w7 H4 z1 W' i# @9 T# password-db = passwd5 _6 \! B9 z1 D# h1 s) b
: B" _0 M- j" Y9 s
# authz-db = authz
6 D/ s9 x7 ~; D1 J$ c; n" q, y$ \# N3 _4 ]; b2 d5 I

  a! M" |, |) P, h$ d# X然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效$ ~# q8 f7 p, W" j2 h% s( G

. m0 }: d8 j- F/ Q0 D登录名=密码% A1 L; _: i: Q" r1 i5 B' J
% ?: s3 ]5 a5 w7 U- I- Y+ S  V5 W  H
user=123456
1 i  k0 O4 H+ e- z' \/ G2 D$ ?
2 d; V# C3 @+ e6 |
5 q( t* R8 F0 C最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
; [! s$ k$ J# ]* D5 q  k* Y
" o! Q! M* l! q+ b* G3 N# * = r/ C! E2 x. }3 q; ]
, S$ V4 r% V# R6 u; U( A' H
[/]1 `) e5 d8 q8 \7 Y# {1 y. l8 T

% p8 r2 O8 X) E6 E! nroot=rw
% L' e% h4 ^* B$ `1 t( ]1 b+ F) d* h& L" J  ~0 {+ A. N# ], B+ w& L# j
这是用户的配置就完成了  T( s3 L8 I* W+ l5 V, \; m

" d" w" B/ P' Y7 B$ b接下来我们就需要开启svn svnserve -d -r /home/svn/blog   Z7 V! k) ?7 U8 |: d9 |/ X1 [
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo8 o) _4 g/ u, B" b' J
$ P9 x& w( E+ p) I& f
使用此命令开启svn 根据自己设置的目录自行更改
/ S( l3 F. A0 ]) p" y: n3 C4 l  H9 F5 p& F2 [* R
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 S% v) f* r% k0 J! f3 l" M- u$ Y" e& q) S1 g/ s
- R6 w4 C& _+ I- ]4 s
win下载svn工具
$ n7 r+ z8 R3 f9 A+ p2 @, J# `0 V: j! _" c& I
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了  p5 S6 O3 o/ R2 E9 Y  y

& d. i$ ~5 [, t! W. a4 M/ x& h
: K4 t7 f6 |: Q4 p! i: I  v5 ]% x重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码1 ]( }' @" g/ y  ]6 t$ X
输入你的svn地址 地址请根据自己的设置自行更改
8 y9 L  s2 T* I: n
6 Z6 g5 [# t. }4 y+ z1 J2 y
$ V8 d1 R4 q1 X/ W' K6 m& f) n然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
  t4 A) i$ {6 Q4 h  c
1 _% k/ G  N% C; C/ D
- ^. a, i  a' ^; v9 q( {(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
' v! O1 }3 Y+ q3 P' b9 M$ \3 [& \( H2 V, ~  n
$ V; c2 y" t$ n+ ?9 p' n
; |$ v  W6 w7 v' f
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
: n* R" [) i. F$ P) ?5 H- p& b! q" w6 H# g' L
这时我们保存在版本库的代码就会被同步到网站根目录3 M: A, j# j# K

# G! G4 ~/ L! q& c4 [0 x$ O
0 X2 I& O# B. Y
5 U5 l5 d% ?8 h2 y" O
! k* [# c& |9 S8 N- C5 S; q
- f% l- F, ?: X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录5 ~) p  ~& b7 y6 e8 R' m1 y
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit% n4 p) }9 V) s$ ?0 R7 i/ v; ]* z
$ Q  {; h$ ]/ q& t! D6 d
  1. REPOS="$1"
    , B0 |/ N: r8 I
  2. REV="$2"9 o  [# i- E6 @3 [5 j( l6 i1 A
  3. TXN_NAME="$3"
    8 Q6 E' D' \% D" ]2 t2 y& s6 R
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"( u7 V; o. s2 |  c
  5. MESSAGE="$(svnlook log $REPOS)"  b4 G# y+ Q9 y0 x- P  p* t+ R! u% j
  6. SVN_PATH=/usr/bin/svn, N$ h* o$ }9 y& k; z* P9 W7 M
  7. WEB_PATH=/usr/share/nginx/html/ssyleo' |: y0 c, |3 |+ L) a) z
  8. mkdir -p /var/log/svnlog
    * {) A* q1 t& ]% _3 e3 Z2 `
  9. touch /var/log/svnlog/ssyleo_update.log
    # t. q- I# ]+ H" b  ]! K9 \+ _2 F
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    / g+ z  m, n8 Q+ \5 V  Y9 G9 J
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    : s! k& d$ k  [6 J$ l' s) q
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH; p' R8 A4 t1 b
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH7 a8 i: L- v+ B  X% k% l8 e$ D7 N
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

7 `- O$ f2 |. E  Y! a( F! f9 j- B% S1 h8 `( }  H/ W
  1. #!/bin/sh; |9 C8 f+ `) ^! Y( a
  2. #设定环境变量,如果没有设定可能会出现update报错5 D' J/ G/ W# T- ?& ^6 X! E/ e
  3. export LANG=zh_CN.UTF-8$ N4 G0 ~6 L" \; I; g8 ]
  4. REPOS="$1"
    ; x: a0 U: f# k3 ]  d# c# u
  5. REV="$2"
    0 I' m9 R( z$ I: s* ^9 J* p1 P
  6. SVN_PATH=/usr/bin/svn5 ^6 i; d* {9 v4 P6 @/ j) U
  7. WEB_PATH=/web/project# A7 E  \1 d" @) q
  8. LOG_PATH=/tmp/svn_update.log2 B* ~* {; @' Q
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache6 Z2 [3 w6 }) Q, E) g
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    0 O; v8 P! @/ q: G( M
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH. ]* E) Y. i+ f* l
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ! x" H" j% T% D, r6 M* I
  13. chown -R www:www $WEB_PATH
复制代码
' E$ Z3 [6 K9 a' D
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
% _0 S" d( F& V/ x2 n; V: \* Oexport LAND="zh_CN.UTF-8"
$ ^7 n+ B! u& ]% yREPOS="$1"& ~8 I  T# ?* y+ P5 c- o! E
REV="$2"
6 l$ x( P& g* c& }9 E  I" dsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( ]( a6 M* ]4 f5 ~8 u2 M9 g1 k
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" k5 y+ d; w* l2 s- N0 W
  1. 1 l  b; n. D% h) x8 g( o/ E: |2 k$ l
  2. #!/bin/sh
    & i1 O% Q. Y, O- f6 M9 s/ {5 f
  3. export LAND="zh_CN.UTF-8") h7 K- W: t1 R, H0 T$ p/ {8 n% l+ x
  4. REPOS="$1"
    / v9 h- L: Q6 Q1 X( T+ v$ R3 |
  5. REV="$2"
    2 @+ m! L; }4 \0 ]& b% ]' l
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    5 M+ r  X4 G. V' r& \4 g4 R$ ^
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

4 o. ~* j% _) Y" e' Z% R! K7 E
. [+ k4 ^" x& U1 B+ D' A  X4 P
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-4 11:47 , Processed in 0.064396 second(s), 18 queries .

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