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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
& P! h  @8 J$ [SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
2 L! H7 w# ^6 [( ^/ E" I/ ]1.准备工作4 A% m, _' ]7 f
一台centos7 服务器 一台 客户端4 Q5 w0 n1 |* r, F* I$ w: R9 e
————————————————3 c" g) c/ a, h
1、验证是否安装了SVN2 J9 R, {( l8 i6 P2 J

- Y0 {! b: L; u命令: # rpm -qa subversion- q0 i; T& o# `$ Z' C7 w

. J% E2 ~( o: U  F+ ?, P- I  V如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64! _* k. G) m$ K: C# ?- f& b

  ?! h; \2 ^1 f8 Z否则,空白
* ~. n4 ]2 B8 o- u: m/ Q
# I5 K' _: G8 `) ~2、安装SVN的命令
/ z" e, p6 z2 ?/ ^$ }* A: \9 I' T$ S0 r, p
# yum -y install subversion
. y5 X& R+ ~5 R; I9 ], E. Y# Z) j& m
8 f! v# J9 N" }接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录& z# ?+ ^: d% e: j; R( D/ r) Q
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ D2 R& |9 V7 ~. E0 K8 [: j1 \
3 l+ l, l1 b& t/ j
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置( X# ]( u$ ^5 d0 N9 K7 `  h+ W, i8 l
! b( |. U* A# f6 o; U8 P
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)2 f' ~5 Z, o3 a& v1 I

0 A: w% A8 A2 z# H% S0 O
$ n- C4 [+ v( Q9 }& [! b5 R首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格* G; u; q0 Q; ]3 W
* m0 ^' a- I8 ?$ V  Q, h3 ^
# password-db = passwd# p" T9 c3 `- @& z. ^
" q$ N8 r% v6 B" s. l
# authz-db = authz
: }& P) K  l9 y& P4 u& \3 v4 O
& P" |, B5 Q+ Y% v' i2 ?# L  \2 ]( I6 r) t$ C" ]
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效; {% U# ]! p9 R% p. ^
4 f0 g( }5 A" j
登录名=密码
6 c1 }2 g8 h; f. _8 w6 W! V/ B1 z! U
. B1 Q2 n2 H; ]. ~user=1234566 ^5 z( O/ C3 y" h; F

6 y% d; p; T' D% Q" n# |; @& |) x# v
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限): k/ \' r" T2 A9 p

9 X0 _6 ?: s( G# i3 U/ K# * = r
) S; q" O- l: x6 U5 s4 u5 F. e' c: D3 l
[/]
6 @1 t% [1 |1 R% Z2 p0 g; t; O" v8 k; ?) K4 c
root=rw6 }" }7 A/ t3 g

" {/ l2 r  v2 b" A4 g这是用户的配置就完成了+ @3 m4 m' e0 K2 S( D9 _

' Q% l1 a. q* B8 L9 |! {0 z7 R. r接下来我们就需要开启svn svnserve -d -r /home/svn/blog
9 s7 x* M; ~) r: lsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
; ^) V# J7 k* g2 M; ]; a+ [9 a6 q7 X
使用此命令开启svn 根据自己设置的目录自行更改
" n6 W" s* l9 `/ B; z
/ c7 C2 s' F, M; J9 [使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 B2 u1 E3 \3 g$ s) @3 K  o+ u+ I- u5 B3 c6 V- C. E
$ e4 R' E! s( N* b
win下载svn工具) h7 |( q+ b! M& e2 [! l! o

1 v% v7 M; ^( H; I, r) x. q接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了7 y: y  m9 s% c; ~2 h! x
9 b# D& n, g7 |6 o1 }

: k# h) w7 o5 O) V5 E& O重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
+ r- v# Y6 s) k) O$ L+ s2 d( o$ @  D/ R输入你的svn地址 地址请根据自己的设置自行更改1 j3 ]% y7 B" \8 ~( G

% J' b7 S  s# e3 i
9 A$ }% l* e) W然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
# l, q: @1 Y5 a8 r# @& M& O9 B1 b6 l3 `7 g" g4 Z
0 p+ w- M* v4 P6 ?
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
9 V$ y/ ~# S. Z7 g3 z5 f
# _$ `2 |; |. G" }. \6 E
% B/ f9 G! j7 P5 Q4 F
$ c% }% B) T% ]2 D- z4 g可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 W1 P0 v! K8 u" v* ^1 X. X+ `
) M8 \; M5 A/ }* ?: d. M+ T# p2 X/ w这时我们保存在版本库的代码就会被同步到网站根目录4 n$ I: d5 o5 N7 ?% H* y
8 j$ [+ A5 O4 C1 Y3 b
' p$ j* x% T0 k: O0 J/ o
/ O% V% w. k; |! f  Z6 c# B5 l

3 s# I- I8 r) l8 F1 \) r1 i3 V7 I; _" t5 t- V. g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
0 ~. Q" a; j1 |4 P! Tcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( T$ v) }( W# a9 u# q
$ U7 T, W6 }1 I9 n: b
  1. REPOS="$1"
      u0 H! e. [! h, `
  2. REV="$2"
    1 N1 O9 }9 Q5 N4 ^9 [6 e- v
  3. TXN_NAME="$3"
    : [6 z* [- x; `. y  d
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    2 I3 r5 ]& O- O& I: b, X6 r$ G
  5. MESSAGE="$(svnlook log $REPOS)"* s+ T7 |2 V1 J! y( z
  6. SVN_PATH=/usr/bin/svn+ S# u% \* F* L+ A5 q5 g
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    " E2 }; F' B8 E( @: a- F; b
  8. mkdir -p /var/log/svnlog9 H3 ?- d  S$ E" ~  f1 S
  9. touch /var/log/svnlog/ssyleo_update.log
    - |' y* H( O3 t  @8 x
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    / ]* Q8 T7 t  R1 E. y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 F9 A, l1 p2 r' O+ a
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    # R- |! |2 I" h9 m
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH; W) p  D5 d# C$ ]9 l. p
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
0 l$ }$ A, m1 g$ r5 x- W+ w

$ b2 u1 a) O/ p; L! p2 @5 n* I
  1. #!/bin/sh, |5 w% y- p! J* x( D
  2. #设定环境变量,如果没有设定可能会出现update报错8 p/ @) x$ ?- u$ Q/ s
  3. export LANG=zh_CN.UTF-88 t# D( {5 B/ h4 y
  4. REPOS="$1"% @) @) o) z; N, M
  5. REV="$2"2 |, N' {: y6 h! v2 G3 d
  6. SVN_PATH=/usr/bin/svn" K/ T6 s* w3 y7 F
  7. WEB_PATH=/web/project
    . o' y' g) @  f6 k. g: h. o
  8. LOG_PATH=/tmp/svn_update.log% y) p3 W$ T* b% l
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    0 Z$ n$ A" G! b& k4 _$ S
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH! B4 W& ~& A+ m5 W& f' }( p" l& V
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    8 T6 o$ D: V% a2 I. s  o' r( @5 N
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    % }' c/ F4 p$ h" P3 y, F& K
  13. chown -R www:www $WEB_PATH
复制代码

, M3 H5 h* f4 V6 U5 {' v
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh% d( F& S0 V$ e3 I% D' T2 X& H) o  v
export LAND="zh_CN.UTF-8"
; W7 K3 D' X$ l/ v3 h0 UREPOS="$1"
0 @# Z( b% H3 I/ ~3 @. \3 NREV="$2"
- Y# U3 D' e: W$ o. Y, Z# u' bsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache' a; e" e1 d& q1 H5 J
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- Q! [8 {* M+ c) s& `) J' Q2 n

  1. ; m1 H( r+ a, r6 R7 o
  2. #!/bin/sh
    ; _- l/ I8 o6 v  t; v3 Z
  3. export LAND="zh_CN.UTF-8"! r$ W4 @1 i* b* V7 j
  4. REPOS="$1"
    1 k/ k, [7 X) l& A( ?0 T: d6 q0 Z4 [& A
  5. REV="$2"
    1 C- l* W: g) {( K
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    5 ^% S, f* @! _& ]
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
% Q$ k$ F* q. b6 ]" D
/ g* _; l+ G& H
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-2 20:53 , Processed in 0.110864 second(s), 18 queries .

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