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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
, E) y) Z4 U* CSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)" ]3 C8 Y! t: i. @
1.准备工作2 b6 H7 n# k. ~, u: Y+ k/ Y! \
一台centos7 服务器 一台 客户端8 o; J8 ?$ s; T: F9 g8 f" f
————————————————) Q+ a' D+ e* y* G4 M
1、验证是否安装了SVN/ t3 X# ^  S' @& X; `1 N

& u2 \8 Y/ n. }' E0 \* H& p& D命令: # rpm -qa subversion1 l& w8 h0 K% l* F

& `: {/ l+ X/ s0 J4 K' M7 ^0 r如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64: s3 o+ J) q3 D5 K+ E# z

! E0 R- @- t$ O5 E否则,空白
- j1 p4 c0 ?: V* l# g) v* O$ }3 w1 ^( `9 ~3 J
2、安装SVN的命令
: M3 Z" ]; l( C5 o
# d0 G  k9 j" u& {$ ^1 U8 a# yum -y install subversion8 S* h* E& D! P" z# b1 S

$ V$ l* e6 g5 ?, v: _6 @接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
+ }, R. R$ {3 K# b. Z+ Z创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" S: X1 q; P5 i# E7 F; C
8 {7 O- Q  x+ s' H9 t) N6 E% d
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
- ]$ q# `- g# V
& Z% s- _4 u4 b- }) Jsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)/ w2 T  H$ S) t+ i2 N

0 u4 u1 [* q0 H7 d" b% ]3 a' R6 P  ]9 [* U# a
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格2 z/ V! [" p. y& [( `/ g

8 b# O3 c9 u' k0 h* Y. l* Z# password-db = passwd
* n+ x" h6 U5 E8 z. }5 ~: y2 f3 f
# authz-db = authz+ n" q  G( [) V: V$ x; Z; S, X

, O( d1 x1 h! ~! H( G5 T: q' ~* z5 X# T5 u0 g% ~7 J9 y/ [
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
8 f, E4 Y( t6 v7 [& i/ L0 j) _6 z6 `% t9 ?7 T
登录名=密码& v0 m( F4 `$ j; J, e3 `
" W: \# A) C1 ]* l
user=123456+ \, T* m+ D7 ]0 r! E( q

' }& v9 n; M$ Y7 \% \5 q0 D; Y- d) t! B+ g% A( y
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限). D0 o% Z. F7 Y7 ~; T" b1 S
* Y* e+ V) i3 }! s0 w1 O( U3 \% z
# * = r
0 m6 B4 v0 a0 o! m6 S! j( O) ^- a* H2 X7 `1 q" e( D. |+ u  N
[/], N9 T; E5 [& n

4 e6 `0 A% ]" W* q8 W9 A2 Eroot=rw$ S( }" l) j: Y$ i1 V8 o

, U3 P$ T9 j! [: s- n4 ]4 g这是用户的配置就完成了& @5 F5 p  s8 d6 K& f; k/ ^  e/ }

& m4 I6 G. q) ^接下来我们就需要开启svn svnserve -d -r /home/svn/blog
! }% K7 @4 v! B3 q0 w# d% S0 Usvnserve -d --listen-prot 端口 -r /data/svn/ssyleo$ W& C$ U( Q7 ?* m# v  @* r
) K5 s, S# L. I* ^0 x
使用此命令开启svn 根据自己设置的目录自行更改
. S. _& U4 d* B( R4 v- r* U  n0 F+ G" s4 [  ]- F& p! J% A
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了1 }4 J* D" O8 O8 l* G+ I& n( j# {# U

: \* X$ \* a( O7 k& V. s! {, k
9 H0 v  _( W7 Twin下载svn工具
# G9 b! j1 o* D8 x  V2 o7 {, i2 o6 P' t( J
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
! T; x8 I) f7 \
% j+ e' `* D' \) D* l" g5 ~+ s$ P) ^2 i4 }1 |9 P
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码6 l$ G4 x7 g' Z$ |
输入你的svn地址 地址请根据自己的设置自行更改
. S" F7 K2 y) Z( ~, T. h, V3 ?$ b$ c1 y. U9 |3 l$ h  J

# c+ J# u1 i, m. A, L4 `; I. N0 M1 x然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
" k& r8 z! j/ r# e6 }1 a% M/ x% N. b. {! r3 p2 N, |8 I
( d* [  _7 E* J
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)2 J7 h7 C" H7 Y8 C: F- o, y* X  \  M
9 ~  O. N+ l) A6 X  o* r

0 @7 B, G6 w+ ^1 x5 h  `4 N& _9 |( V: g
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
! [( D: r' |  ?' P. G+ \, |" T1 _( H2 `
这时我们保存在版本库的代码就会被同步到网站根目录
2 W9 M1 a. H+ O8 o
& ?$ P" M$ b$ O0 m- Y5 d& X" N# h5 d+ L9 l) U

# w  ^: ~3 L2 Z" \$ z9 f* Z/ ?  G, p
  W5 g; s$ B4 \2 |+ P0 _3 w% y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh& E7 m) q7 E8 r6 X8 k$ q7 D
export LAND="zh_CN.UTF-8"
2 x0 J6 J4 n0 dREPOS="$1"* N4 z! M' O, |+ o3 P
REV="$2"
- r' E8 {  ]  W' ]5 vsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 u1 S: r* i- A- @& x" V
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
' Y2 \: R$ e/ O! m) R' o

  1. & Y; D3 c- R% H# Y
  2. #!/bin/sh: Z5 ?. ^, @) S2 E! H( l& n' J# g' `
  3. export LAND="zh_CN.UTF-8": l8 y- d- n! N
  4. REPOS="$1"
    ; H* x4 w. T  I5 b0 y' _) X
  5. REV="$2"; u9 V1 a! w( F
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- ?3 O) F- n8 _; z: t( V& Q8 _
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

3 G1 d) X, z2 ^
/ o; W& C$ C' u3 ?1 D7 U
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
* B& }' ]& k' a$ G* i# F7 M6 d3 _cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
8 @" C: x1 X! c+ {" _: G
7 D. w: ]0 n3 K: ?9 D$ s% }
  1. REPOS="$1"
    5 i! `5 F% Y" V$ u/ J
  2. REV="$2"
    - Z, W0 {; ]6 h4 y- ]* N# o# x4 y
  3. TXN_NAME="$3"1 O! Z( n' K1 u- j! `
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"  l0 E& ]0 y6 ~( f* I. P
  5. MESSAGE="$(svnlook log $REPOS)"
    9 g6 `) K8 Z; `) h+ i
  6. SVN_PATH=/usr/bin/svn
    # U3 p0 O' u" [4 H
  7. WEB_PATH=/usr/share/nginx/html/ssyleo# h" P% h) U0 U, y
  8. mkdir -p /var/log/svnlog
    + Z8 j0 q7 H7 T/ J+ ~- S% q4 B
  9. touch /var/log/svnlog/ssyleo_update.log) _9 Y. g' s" y; L4 h
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log- b- H" X- `. G; B7 g* i5 f
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH9 H) a8 z: `. d0 X3 H5 l4 o, o+ H
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH' N4 g$ h! Y' l: U
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    & R* Y' D% k9 n- U
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
7 S" P' r  [7 t$ z
5 u2 L- B6 S1 u; F
  1. #!/bin/sh/ o+ W' I/ Z+ ?0 w4 k( E- j
  2. #设定环境变量,如果没有设定可能会出现update报错
    , i/ j! b8 q+ x; x. }
  3. export LANG=zh_CN.UTF-8
      {3 A- ^9 C' S
  4. REPOS="$1"
    # k! _- _$ ]. E
  5. REV="$2"  V+ A) z" ]# r' v: U* @. O' }6 c) e
  6. SVN_PATH=/usr/bin/svn7 |! Q) U' ?- @$ E4 J
  7. WEB_PATH=/web/project
      `3 f1 n4 u6 ^
  8. LOG_PATH=/tmp/svn_update.log/ o. n6 g2 v; R% V' u8 U# K
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache# x; i5 p+ W" M1 d8 ~- `
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    4 J( G6 A8 H6 a, S+ f; f$ M8 n
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    - \% Y9 e* C) Y8 v( `( O
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    7 {/ k$ I5 l7 r, h) A. ~/ k# E
  13. chown -R www:www $WEB_PATH
复制代码
5 r: a- Q/ T) n5 ^3 D# h! u% p
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 05:12 , Processed in 0.107022 second(s), 19 queries .

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