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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介; W. H# R2 v/ L8 A: |
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
+ X7 E5 u+ o8 c4 |% e+ l0 ^0 Y! w2 _1.准备工作( L' O* t$ A. r" r) |6 X" Z6 N$ c
一台centos7 服务器 一台 客户端
2 N0 ~) |9 R, _3 V————————————————; e6 V5 S! a/ r9 ]
1、验证是否安装了SVN+ ~6 G; L# \- A$ k

* Z0 M0 T8 T8 ?4 {# X: a( y命令: # rpm -qa subversion& E+ E5 n- j8 w! ?% a% {5 P2 k

/ w# `" Q# c, c" D如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64# ^2 a0 \; A0 a+ X; G5 o

/ u/ d: T7 N* _否则,空白1 Q( k% o1 `8 n+ k4 A6 q

* G' j5 l+ v! z5 d2、安装SVN的命令
; D8 }! @% [# H+ K/ v/ R1 i# U9 Y+ j+ M. D
# yum -y install subversion: c+ x2 q5 b4 P! ^. j+ `8 L: l/ f' C

; u6 R4 s: y. O# L# t5 C接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录$ I4 R9 A0 \/ m
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了; q) p& F% G# [3 q/ j& X

$ D* U/ O0 f  M6 V3 \! Q然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置% z/ G& Z9 k5 H: b7 i9 {& u
$ V3 N; Y4 F: k
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
9 K  T: }4 I1 x; f+ g4 c- p6 S
* Z; u, F8 d* P  h% d1 b. b( ~# N& A0 S+ u* I; t3 i% |# Q9 u! ?
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格. W/ K0 R. }/ J/ j8 t. d# B- k

! U/ {( J; k7 Y- g# password-db = passwd  m9 z4 S- a4 r6 B

7 c4 Z" B9 U1 O/ }; ]# authz-db = authz
) p6 }/ t# F1 T4 i$ F
' g# {; c# L3 d) F1 B% _3 A/ ^) {  H$ ^8 o% d
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
! w8 {, g& L( H% V9 e7 J' ~# H3 D* ?( I+ s
登录名=密码
/ Z# H' @+ }. q* C9 X# y! x" o! ^! n% A1 L; W1 B( \! C  @, |; S5 V
user=123456& O9 U8 `; f% L+ ^& J5 h, k! t5 n
& E7 V  ~5 t2 `5 x8 [3 ]5 j

) @9 k, T/ i& i8 y% Z4 ^最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)+ o! d/ D- H; t) z/ C

; [  h, T5 G$ _$ a2 \: q: M  v8 n# l# * = r
5 H. \3 O7 ^) E5 _" n8 W. g& }5 c7 R; k* `( n& H
[/]* ~& w1 S  W3 I$ a: K
" A; m" }3 p3 r- r3 T0 w
root=rw
9 j' s6 S8 W4 z( ^$ s5 n8 f7 J: T# }% L& X2 M
这是用户的配置就完成了
* {: ~6 S; D2 X; j
6 C$ l. h2 q6 r1 k+ u: D接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 l: e: u/ H6 J; J( J7 Lsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo5 n! U+ c! ]7 {" ^4 g7 R# y

$ g! @$ f$ {8 B# W7 ?使用此命令开启svn 根据自己设置的目录自行更改
9 R% v, E; [7 D7 F) E& u: ^; J6 d$ P1 ~3 l' p& q9 L
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
5 Z) N3 d8 @) e. i* `2 R- N/ [
/ ~. ^4 S8 [, l3 b- v5 v% m
6 T0 Q6 X9 x& B$ x  lwin下载svn工具
- y0 ^9 Z% A/ G) V
7 ]; X: _- ^2 D% l2 E1 _接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- Q: x* u1 r- ]4 A( F

  w$ R, z2 Q( Y+ a; e: l# a- Y9 \/ j
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
( e6 z! U$ n/ a: P# e输入你的svn地址 地址请根据自己的设置自行更改9 A) j( _; n0 X8 @

& A. ?4 h7 _+ Z# `% P9 [
' g! d( w. T  G0 i3 P然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
. |9 V: b( L9 g! ?. }
. a0 m9 A6 I; \$ e3 B6 z. E: g8 _; e" L: y1 o0 }- X- {, I* z# v- ^
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)/ h+ o2 i8 U& I
( T' S( u2 Y5 ?  ?2 Z1 {4 G7 S) ^

0 |$ s+ h- I9 l& q8 R; h" j. p
4 n6 @% ^/ I+ u( u" D6 h# ]可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存9 [$ w% [/ f- A2 {, e; w

! T# l" k. u( U& `  n这时我们保存在版本库的代码就会被同步到网站根目录$ a/ v* C5 [; Y# p! ~5 e$ A3 y

! g# l  ?" L+ Y% `- O4 n# s) Z
8 P! R2 e6 B, W0 U7 c
" Y" E/ r$ T" v! u# w5 Z& Z% B9 l+ U$ Y8 ?$ a

* o! m7 c& e, s8 C, F* M8 }' d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
) W3 W* G: n$ w1 ~5 kcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
: h6 Z6 ?3 K; c
' a! j4 j( c: ?' n
  1. REPOS="$1"' T) f( w3 b& A  \" G
  2. REV="$2"
    - ~6 A7 h8 V8 I( p- s) I/ _1 ~2 \
  3. TXN_NAME="$3"
    / X* k5 A$ D8 C, M  I+ T/ n
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"/ x. g; U$ n, s4 c% M
  5. MESSAGE="$(svnlook log $REPOS)"
    8 E7 `6 e2 x2 \7 \; ?3 `1 v. B
  6. SVN_PATH=/usr/bin/svn
      q% O) g  \) c: H5 x2 U- R
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    + X( V  Q+ s* Z9 B* Q* Y# }
  8. mkdir -p /var/log/svnlog
    8 N, I1 \& h; i& p: G3 O
  9. touch /var/log/svnlog/ssyleo_update.log6 |# s+ w$ n) z
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log$ V% D2 v7 {( S2 }" k
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ; ]& }3 W9 H  [: k% P, t7 f
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH9 \, J1 v  x2 E! O( K' F
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ( m: u' e# s: i0 ?( K1 H# a
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

0 a+ C  X' K& F4 A- j$ ]0 B' r- \+ R, @% W0 F  r0 H& J
  1. #!/bin/sh
    0 a" W* L) O# E- Q: @. {: ?5 A6 W# y& E
  2. #设定环境变量,如果没有设定可能会出现update报错: L+ c; {7 f: z7 U; C# F
  3. export LANG=zh_CN.UTF-88 K) P- v5 U, l0 o- B6 w
  4. REPOS="$1"  G. O4 d/ `9 e% S
  5. REV="$2"  T) `, t* z- W& ]5 l- d( f$ F
  6. SVN_PATH=/usr/bin/svn8 T9 ~3 }4 z8 b; Q4 s' i. ]# D
  7. WEB_PATH=/web/project: W, f6 N0 E5 l; T+ a* q0 F/ S
  8. LOG_PATH=/tmp/svn_update.log+ v& ?5 _& d+ S1 R
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ; D/ [( Y7 j. E7 `
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    . c: X& \! I% |, R1 ]
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    6 ^4 r9 R4 y- o0 F6 I
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    1 E( Y9 L6 ]& ?" f) T/ s3 r
  13. chown -R www:www $WEB_PATH
复制代码
" `0 K8 t( a2 J0 S& o" F1 W7 q
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh# G, z  P% j/ F
export LAND="zh_CN.UTF-8"  `4 O( E2 A. s7 \6 W3 I( N" V4 L
REPOS="$1"
7 K1 b( n) {! k& N# Q6 B0 sREV="$2"- q# E1 ~: g4 v$ i# [  r$ `
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( c) u8 l' ^* k8 a2 d; r5 j: g3 s) g5 Rsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. H& l3 K- q' Y* p  ]! B
  1. 8 p" S  _3 N  d  w5 R2 M( y  |, G
  2. #!/bin/sh
    7 q7 V& H3 y/ g7 ^9 _' h6 k! Q
  3. export LAND="zh_CN.UTF-8"
    7 W9 v; A% s" K4 R) y
  4. REPOS="$1"
    ) J% ~7 q3 b5 N& O/ ~6 t' B1 P
  5. REV="$2"- Z+ w+ P1 J- ~
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ f% p6 ^/ r- n7 F
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
+ s  S3 @" _9 r6 O& D. K
! Z1 T7 ?( p, x5 [  p
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-6 06:32 , Processed in 0.118051 second(s), 18 queries .

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