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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介6 j  m: h/ z6 N6 F0 P9 r
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)& y  J* t/ }. d! n7 j6 s( i
1.准备工作
0 I, @, J  c" N8 A* Q. s( C$ Y一台centos7 服务器 一台 客户端
" R# M7 ?, h3 }: ]+ U) @0 c% R————————————————
9 ~* e0 n+ D1 V! \5 s' T7 z3 Q: D1、验证是否安装了SVN+ \, q, f; K6 l
3 z4 l6 ?6 L5 F3 y8 t  }
命令: # rpm -qa subversion
/ K: T. N' N& b$ Q7 l( S7 ~$ [# `4 L6 @
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64! p9 X1 s+ n9 F! [1 _' T- x) `

8 Y# v5 G' u3 P: y/ l/ |% k否则,空白7 K, g4 l, B. h' w8 o

/ V8 E" p( r/ d  W/ S  t2、安装SVN的命令, N# O' e2 A! w7 H$ ?; \0 p3 [

2 _2 o; s# s. e5 i3 G# yum -y install subversion& \9 c5 Z2 F" h" b$ ^

; u2 _- k1 E* Y' F3 J接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录# B$ x3 V; M: b9 Y  t, g
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了, V8 w* v1 [6 W. Y$ ~# Z6 f
4 f( B( d/ x% U
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置# L" |8 o- m9 Z+ Q$ v
% Y- k: A8 H  s7 S+ s
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)5 ~8 a8 l! n' \- f
7 ], [6 H+ ~3 `6 @# L" @% \

* D: o: n' b/ h8 Z; r+ B4 ?5 a首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
" k! l' s7 l5 j: ~/ H. ?
+ \# |+ v; }# E3 h$ d# password-db = passwd1 m& B4 z# Z6 m) m0 k  Z6 |
+ ~+ C: ^  l3 V  D/ U
# authz-db = authz: Z- q# m1 c) \9 n

, g9 E& l- U- P0 r) R" @3 `2 C/ W0 Q* m; _9 }( e3 T( i  ]5 K
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
, P% w  Q' m$ J5 D8 a4 K7 {, x" V) i. T3 T7 b
登录名=密码2 M: c& \* l/ f# o) M. w4 K

( q+ a# F7 h2 S/ C! ]- Z2 }: xuser=123456
, C" [& n# j2 v- ?* R2 L7 J9 r- [3 N( @  @% W0 s' X$ `

" s3 u/ I7 w1 e# F  n最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)/ J4 d0 @3 q2 ^5 f

1 P2 s6 Q8 M2 I6 l# * = r* b& a+ q; J2 w, e
) ?; ^1 D. W! y- }- M7 z/ S
[/]2 ]! k; ^" F+ e6 e9 |
, o. A9 j0 ~$ {+ D2 j4 H6 A
root=rw7 J# V" a2 |* W

1 P" T1 c& m; ~这是用户的配置就完成了
9 s6 z8 ^6 A( J& [( K6 f8 x3 v$ z# A2 o" J+ `
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 3 @. E- N/ o. H! e- b
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo3 Y- Y3 e+ d/ M" n* G

5 n, {  C+ k& w" D4 E7 }使用此命令开启svn 根据自己设置的目录自行更改/ @; q: R! ?3 J$ c/ |
+ A0 r: L/ q3 `1 H, p# K0 q3 _5 t
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了. B! p* O! K6 g  D8 _7 k3 h

( D7 {" u' T- T& i* N& m" c
# x; [- ^6 z2 Cwin下载svn工具
+ U9 }9 s( t1 l( z( u# x7 x: `4 ?( D! e: h; F" x( J
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
( x& [* T& V+ [; Q# X' Q6 K- V  b5 D

6 `) y  m' u$ @- ~8 ]; W- c重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码9 n. x9 K) c* p/ T, w
输入你的svn地址 地址请根据自己的设置自行更改
& v; {9 x; e  f6 r
1 `- R+ k8 p9 J
! \' ?# _' D2 E! O然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
$ L9 c5 T/ t1 ^* @! Y9 P' N. k, k" U5 y: C
  Y3 w2 l4 x+ f  D
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)5 |& Y& L- B# o" b# a9 P$ Y. o

/ T! X8 r6 p; R) y
6 l1 c/ v4 E: H1 ?! b  y( o5 S% a3 [+ I' v; I
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
' `% G5 {" ?: _6 [6 d. s4 t! i  Y
5 i7 l# Q; `& l: j9 L' W# B3 ?这时我们保存在版本库的代码就会被同步到网站根目录
! Z0 F$ h9 f7 f6 y' D1 j4 O: j" ~4 D

  m) y7 n8 {3 o- b6 _, d9 h  }% `% J6 M. }7 q- w) \: u" u

2 s7 T) T- a4 q. R) D7 U
( W# M' a* `# \8 Z) e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 显示全部楼层
配置同步web目录
1 a- k/ Q. }& ~cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
* x' S3 u$ ~4 o6 e* ^. q) R6 Q! _6 o4 v
  1. REPOS="$1"( l( o2 A/ [# R$ O) s; s
  2. REV="$2"4 E, V* j9 }/ m2 Z* C5 D; S
  3. TXN_NAME="$3"
    # G! \4 ?5 w% R# v1 D7 ^. |4 T4 ^
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"9 p. Y; k" @; E9 _& ~) q5 M- @
  5. MESSAGE="$(svnlook log $REPOS)"+ j) P4 m* _* U- Q! |1 ]
  6. SVN_PATH=/usr/bin/svn9 o" P0 j* a/ Y# m
  7. WEB_PATH=/usr/share/nginx/html/ssyleo3 B- S9 b; p0 v* @6 a" n6 _
  8. mkdir -p /var/log/svnlog
    & f! }0 q% g) U5 a, j* i
  9. touch /var/log/svnlog/ssyleo_update.log" ]  s6 |9 {1 ^1 a* d) x
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
      }6 U; K. ]  X; q9 Y# Z
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH3 D- D1 Y- e" z1 o
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH+ R& I- i2 h2 B9 M, a
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ! Z, q  P$ g2 w) \' [' J  s3 ]
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
2 Y0 u! H" i6 k0 H8 v
2 j9 @# b4 X1 ^
  1. #!/bin/sh
    * R% {% h1 R+ N  G
  2. #设定环境变量,如果没有设定可能会出现update报错; y% O# g3 R! c# d/ ~
  3. export LANG=zh_CN.UTF-8( k1 Q- m; k7 C( N: C3 }
  4. REPOS="$1"
    ! p4 K) E$ N8 V9 t0 r2 E
  5. REV="$2"
      S0 }1 g% s% x9 N$ s
  6. SVN_PATH=/usr/bin/svn. g. Z; h7 t" j3 D0 I
  7. WEB_PATH=/web/project  q/ \+ [/ {: L  t
  8. LOG_PATH=/tmp/svn_update.log
    4 [) O7 H: {8 o8 T
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache/ M& w( }( J2 @, m: ^
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* M! \; V, [- y$ N" V# H6 D
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    # ~+ i9 F( p& `( M1 G4 t! l, }2 ]. R
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    $ f- T3 r) }: q! d6 g
  13. chown -R www:www $WEB_PATH
复制代码
1 P! t  Y: |: z, g
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 显示全部楼层
#!/bin/sh
4 V; Y) S4 n  h7 \1 X* ?! @export LAND="zh_CN.UTF-8"
) f* \. ?6 _& n# [4 W/ tREPOS="$1"
3 Q7 m# q+ g" C  f/ EREV="$2"$ v) S# J- J3 \1 O) c0 d- l
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- N) e" e& r1 B& j! q2 E
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 K* |% E' r6 P# R

  1. : Z; u, n8 {4 t  k+ @0 i
  2. #!/bin/sh* \7 o& n! i3 y' d8 H
  3. export LAND="zh_CN.UTF-8"
    6 e: A6 A4 B9 B. v% x* v
  4. REPOS="$1"$ J  k6 _1 a: d# w( h
  5. REV="$2"
    & q. l- u9 C  q- w* ~3 D
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    0 S2 B0 r  z7 J+ q7 f
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
4 e, q9 v$ `6 j7 G, @
* |" c* H" V: @+ d' U: F
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-5 23:02 , Processed in 0.116675 second(s), 18 queries .

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