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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介! U; j0 G# a$ ]& R" T- U
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)2 [! V- F/ {% \; @( ~& }
1.准备工作9 M& I2 }% J' }" L# o
一台centos7 服务器 一台 客户端
3 p  j/ j0 }9 G' f: Z————————————————* O$ i2 T3 f& I
1、验证是否安装了SVN
6 b# d. ?7 J! d- o6 _
& A+ g) c7 r) r命令: # rpm -qa subversion
6 c/ K. g, u) _& p/ c  D
; O- n7 ?+ G0 I4 O3 S如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
- V5 p5 h& R$ Y& T) `" s. b
9 ?. i; _, `  v否则,空白6 ?5 V  @, ]2 K
% z- R1 s( _$ E0 _. c* {
2、安装SVN的命令# f3 {' R. {! e1 M4 Z

( ^1 r, p( d7 h- j9 C# yum -y install subversion
; x' D8 Q1 B% s6 W: m1 T
8 E# q* g* n- K' n0 t7 h9 M( g接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录8 U4 K; t6 @) x# E$ j
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了8 ]* s  m' ?" d1 Y. S' T
+ d  E, I3 |5 F. z
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置* y/ k; s* j# f' V  ?8 q5 x% J

) p# x+ B* z2 @; W6 w* H$ c# |svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# G5 A2 X; E2 D! ~  s% _! S" Z  b5 T

4 J2 V, |, ?8 N  s; H$ J8 F' q
' A- {9 n" l% J. k, S# M* c) S# W首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格# S! H( N* ~, T

& T7 D2 m* L6 U" M# password-db = passwd! k% j/ a' C& H* G; Y! V
! u$ l( x3 m& @0 E+ v
# authz-db = authz5 m( _0 c* n! V5 K
3 K3 m8 A# ~1 z0 M' t

9 K% v1 }. M( R  J( `! ~然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
7 f5 Q$ \8 {# `+ D+ [* u* T
' d) {! \2 A% Y# p0 [* C* `% d4 k登录名=密码
3 k0 _( M( g# y5 X" Q1 y
; v3 o( P$ u$ i) E8 juser=123456
: M( K2 r+ H/ @5 z: t5 o8 d9 C( x/ T# n

8 x7 z+ \/ Y. p; H) I最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
9 x+ M! O8 M3 @+ |1 A  a0 n7 A* l7 t3 B# y+ P- h# Y7 d
# * = r
+ h8 u( y  Z. Q% z" ?: s1 E, d+ w" {! }
[/]
" z$ c8 T; w% M/ |
3 d3 H) L+ X& B3 e; \9 eroot=rw
% b6 K  N( |) ]+ [, e
3 X- j* ~2 x' P( M- V  Q) @$ F这是用户的配置就完成了1 P* s3 e: L: ]1 D) t4 G
* [* U6 V, j6 ]) c
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
" d5 j9 h5 K% a) n7 ^  |svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
4 }% Z, H: I$ y$ c
4 R; I7 J; v4 f8 \使用此命令开启svn 根据自己设置的目录自行更改* \1 B3 w4 |% a" U) k

/ d; J% K( _0 S使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 z( J  n+ n3 f0 a# V" u) I5 L( S* h; y) v/ @  ?$ {
6 c2 O5 B2 r5 c/ x( T: w; `7 l
win下载svn工具
& ~# h5 `: F0 z4 ]7 C8 c: Y7 i# k5 g6 ?* l- z4 T7 z1 m0 e" U
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
: D% j; H' X" C$ J) q1 H! \2 D9 y4 w+ g% F8 D  \
/ n0 K* m, F% w
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码. X% I6 C; S+ L8 Z  Q2 o: q
输入你的svn地址 地址请根据自己的设置自行更改  u' d9 i8 J  J" O

$ M5 i0 _9 v* C7 h$ z( Z* h2 a
' e  D6 n# u. D/ |然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了  I# }$ N3 L0 {% N" g$ ~* ^

* ]) C  P5 k6 h9 P. j, W5 U& ~+ \5 y& q6 H  N; s% j. `9 p
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)5 p8 [' T' p+ h

0 X6 ?) N* x* O: l' W
& y0 `% H. s- ?0 ~, s. Z0 v8 ^* X+ I* ?+ M
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
2 ?! \5 ^" A5 J4 O2 j/ W9 n) E( C
9 j& d( V7 _7 b% S1 J, x这时我们保存在版本库的代码就会被同步到网站根目录
1 ^. o5 x/ G5 ?) e0 U, O: L- J% C& ?9 j

  L0 \5 [" g3 A  J. u  N( p9 y6 b& v2 X* T' e: H, o
" x, y6 m. r+ p" P" u, t7 n

& T& X7 L1 D  J6 V2 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录. @4 i3 f" t5 j. z1 ]5 E% a& L( a
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
/ K9 j& R% X( z5 l. C, Z: s9 b: [/ @6 z) L6 t
  1. REPOS="$1"
    # D. F6 W& D5 j6 a
  2. REV="$2"& G  r2 S' {% ?* Y6 r" [
  3. TXN_NAME="$3"
    - i( i; I6 O7 ]" E. s/ l
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    + {, c+ |9 ?3 H' |+ U; @  k
  5. MESSAGE="$(svnlook log $REPOS)"
    5 Y; o5 _; ?9 E+ n! s% T# `9 i' n
  6. SVN_PATH=/usr/bin/svn
    ; |; `8 L$ G4 g0 C3 E4 A
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
      A5 O+ `3 ~, ~4 y; B
  8. mkdir -p /var/log/svnlog
    , T+ M5 V+ F, a; g  q* m
  9. touch /var/log/svnlog/ssyleo_update.log" T. n! X- k3 ?: \/ e
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    4 I1 ~0 d+ A, s
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH$ n1 G. L3 j( [' J
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    . A# h8 g9 u; }, y" O' K
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH# z3 v6 Q! S" h: \; r% D0 Y
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
( Y% z, n# e! D3 p6 V: K) l

% q1 i# y9 x7 ~0 I! W) K
  1. #!/bin/sh7 P, q; S, g6 E# j$ v. }. Q
  2. #设定环境变量,如果没有设定可能会出现update报错1 W/ V7 l- t$ }: [4 M6 }3 T
  3. export LANG=zh_CN.UTF-8* l7 O+ S+ X) q; o
  4. REPOS="$1"" h$ C# b: x" \; r9 {
  5. REV="$2"
    0 {, M4 V/ A+ v: l/ p0 s
  6. SVN_PATH=/usr/bin/svn' v5 @0 W$ W" q: z
  7. WEB_PATH=/web/project3 ^+ w' D# c" f# H
  8. LOG_PATH=/tmp/svn_update.log
    5 e$ _9 |1 z9 P! D( H  Z
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache# {( U- C" a# J, h
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH% ~% k% |+ ~0 C6 z3 l, p, ^, ^$ `
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH$ n& D1 I; B5 @' X4 l; _7 @
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    - }: |; Z5 x. G4 A
  13. chown -R www:www $WEB_PATH
复制代码
4 t4 ~( f* r& x. W; z& M) q) R
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
, k5 y; q" O- F; }/ ^export LAND="zh_CN.UTF-8"7 [& X7 P5 j8 W8 s1 U
REPOS="$1"/ ~; h, P1 d  x" i: [
REV="$2"
5 u+ v* j% j! ^6 x! L# q  osvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
: |% K" R: T/ l2 W) D. {svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
; @% V, U( M( {5 V/ y

  1. / v4 X" @4 e8 e9 Z: v
  2. #!/bin/sh
    % H1 t8 S; _( y$ V0 Q
  3. export LAND="zh_CN.UTF-8"- K0 i6 f2 b  s
  4. REPOS="$1"
    9 u( {8 ]; z  L; }1 P
  5. REV="$2"- h! L* F; S6 F, v4 Y2 Q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache, k3 [% _0 D/ k/ F, B) H' o
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: a& ~! e* m" L2 s& Z# M2 _* Z3 F; ]
4 R, z4 X. ^) D9 |% Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 16:50 , Processed in 0.057150 second(s), 19 queries .

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