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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介3 [1 O7 ]! B8 f. Y3 U
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
* z, n. o5 }: u/ Y/ z1 ~$ }( [) @1.准备工作
7 N5 p" ^3 q- n1 x9 F一台centos7 服务器 一台 客户端
  q$ B9 R2 [8 c6 P/ |/ o) @————————————————
! d1 o7 a+ \7 R' `% Y) @1、验证是否安装了SVN& U7 I1 w/ g* j* e
* F; s3 E; J' S1 p# `
命令: # rpm -qa subversion: }4 I% y, k/ x) s/ e$ e, g2 b
, H. p  B; ^) y. l* g" e- p( H7 S$ G
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_640 S' H: _4 g' ]

8 R! |5 B. f/ s6 W% }( L: y' K否则,空白
! h% Y/ \8 P" \0 w/ ]5 q  |, e7 L, E, K0 V- e5 U; S! G/ H- v
2、安装SVN的命令2 I$ i7 g" p- D9 O

; g% w; K+ s0 s* T# yum -y install subversion
& w* V1 v$ |& q8 V: g; L# c3 [* U7 p7 {+ z( M6 _
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录# V! I% e; w1 ~5 w
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
* t. o/ n# a  G" E" f* M6 u7 Q
  [8 E% G: E! c3 M然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
; ]6 m8 i( D' c; R5 v4 N" j0 C' N' [5 n! ?) k9 Z" |& a
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
' q4 p0 r' A+ l3 V# t$ S5 v( ~
0 T7 B& V7 L' p- e! o8 {, k% I' D. P4 M
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
) ?! f# L8 e* G5 Q2 l4 B' p& j( E" a0 r9 O9 w
# password-db = passwd* a4 _$ d/ ~& ?- m& p
3 p9 t" V5 ?2 Y2 s# h
# authz-db = authz
& x& B3 K. i; P3 r' W6 ~. f0 @  [1 l+ i/ f
  N% I8 C# U- v+ _
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
  O1 X$ F0 @) \  C0 C9 w9 h" e9 C- n! h4 S
登录名=密码
1 _# \  E  [: c) M9 H! o) e: A1 U, ?5 Y( ?$ ~. J* }% v6 y
user=123456
$ m; F3 S! E3 S3 `! [' `5 _- S
* X$ _2 p5 p$ K* ]- J* Y3 G  n6 y* R% V* j  H7 g4 E) b! M6 \; A. B% R
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)* E; M4 q: V6 k6 ]# q* a
( _% y- J. R! m2 U  i$ P' ?! k
# * = r
% E9 N+ j/ U; R  K. m& w! i7 ^3 |4 \5 {) m' }: L) ^
[/]" r" ~! @& L. `2 e0 ]4 n, Q
3 W2 e+ D+ m1 ?
root=rw' K& c" O% q0 |" A8 m

% k% j0 S( i2 J2 M) m- g" r1 Z这是用户的配置就完成了$ q+ G' V. j% T& N
! W. x) W8 m* ]; l6 U3 z) b& [) X; x
接下来我们就需要开启svn svnserve -d -r /home/svn/blog . b( l1 T, ?$ h# \* k
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo& T8 F+ c, F8 o# k. j% ~
) N# ~! g1 Q$ V) \6 c  M, x% t1 b
使用此命令开启svn 根据自己设置的目录自行更改
! c# E4 V; R. C: V: o4 W8 w2 t
. `/ w* ~7 Y) r7 B. e6 o! s使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 [# w/ K, o4 R  [, Z
6 L; P% Z$ N2 |& g$ N8 m( H
5 I- O" ?6 K; |, h. ^) fwin下载svn工具" q7 c; O8 S' g( \

3 P2 a5 e4 u$ q8 u% O接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了! a+ V7 B4 T5 ?" G, r6 u
+ i4 p1 D" }$ {$ N9 c) Z' q9 F

, Y0 {, A( i4 \/ _' C! O重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 D" L( _& w! u- r; `& S0 X: w* |
输入你的svn地址 地址请根据自己的设置自行更改/ R9 b9 x# x% P4 V
& e! R* x) U% r  t) I1 s0 z

: Q' s8 v; M3 E3 E然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
- j# C" k' ~4 C2 P* I" f) {% L: @1 w0 s/ j
( Q: L! j  H1 x; D) I9 ^- h
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
* f+ w$ c0 h' {. j5 r7 N) p/ }% x' l
$ P. A0 w. [. R' e& i5 `

- @- c! {. k% e. v+ `, F可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
, }1 j( t5 a& h7 q8 I* J( t7 @! Q3 q( ?8 S) f
这时我们保存在版本库的代码就会被同步到网站根目录
% P) P& J! r3 T/ [. D1 _4 H- p$ k0 p
' s3 K! z; U6 o3 H
+ _+ n, G! L: X6 a1 {+ l6 a

  q8 D1 l: [: G' L$ K3 @6 j2 ^9 x& D- I* t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
" c9 Y3 L- E. R% X2 B2 bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
9 V/ H3 W6 e4 K
0 r# ~! Q! N$ z& {% u
  1. REPOS="$1"
    , D" f) C1 j3 ]0 ~* J8 u
  2. REV="$2"
    + |# g2 a* H0 q8 R$ o$ W
  3. TXN_NAME="$3"3 P; x. L5 k) a2 ^/ w8 e' p
  4. AUTHOR="$(svnlook author -r $REV $REPOS)": p2 m& v+ U8 |" x2 L
  5. MESSAGE="$(svnlook log $REPOS)"/ S) n5 s) l6 @! _
  6. SVN_PATH=/usr/bin/svn+ r, ?- D. z0 w5 d9 e5 |$ y; f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    $ m' b, _1 H9 ]' e" V
  8. mkdir -p /var/log/svnlog0 M/ Q9 j6 r+ `2 q- ]% e: C
  9. touch /var/log/svnlog/ssyleo_update.log& f9 f6 u7 j' S; j' Y3 a+ u% V
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    , O3 [7 r2 |2 [) M
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    $ ^" e# T) T, B7 A3 F7 X0 H
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH7 Y7 t; N, `' E2 d/ n  c
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
      E9 W2 i  y  M' u- ?
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

/ F( z" F4 {/ G' X& |& l' D
: G0 G8 `1 ~9 B1 Y1 r
  1. #!/bin/sh5 t$ G; @! M$ n1 d( _6 b4 H
  2. #设定环境变量,如果没有设定可能会出现update报错" h4 f: ^0 l/ v9 d; y( W: _; ?
  3. export LANG=zh_CN.UTF-8* }% J* |+ q/ _6 Y- I
  4. REPOS="$1"
    ( r3 m) z3 ^0 k# H- w, ]
  5. REV="$2"
    9 i& A" t8 h( f6 W
  6. SVN_PATH=/usr/bin/svn
    ( d# B8 O4 Q- U( Q$ N7 ?" S
  7. WEB_PATH=/web/project7 _. R! D5 ]/ Z0 I6 S
  8. LOG_PATH=/tmp/svn_update.log
    3 c- [$ M# Y: A+ ]# b8 I) I
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    . G) [& v) i. G0 C4 p& m3 i
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH. ]1 t0 H% p' d- n! @
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH) ]! {* }1 d& ]" x
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH* f7 j, Y: o5 p; I1 E
  13. chown -R www:www $WEB_PATH
复制代码

* y. _* L- Z0 \
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 B+ t8 c: V9 t0 g) D( ?
export LAND="zh_CN.UTF-8"1 l' h  y4 ]! G- t4 D" g$ W
REPOS="$1"6 s7 o/ u3 g& @( v- ]
REV="$2"
3 L/ m: [* W" y% ]- Tsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. y4 v0 [5 A/ K- H- C& `# q
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ W, g/ Z2 y) ?( z

  1. $ n0 t  w7 B1 H, j: }
  2. #!/bin/sh+ O! c, Q, @" o5 S  K( \! n
  3. export LAND="zh_CN.UTF-8"
    # Z3 i4 w, y+ \& i! P) W$ q5 ^
  4. REPOS="$1"
    , y% c8 Q" `6 g! e- L! ]' ]
  5. REV="$2"5 _: K5 a5 x6 v" W# j# Q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! m* z4 T. J4 m+ s9 H
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
: _$ r: k" ?+ m9 `1 J& [
. {/ F4 O1 v, \8 @3 k
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 07:08 , Processed in 0.063954 second(s), 19 queries .

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