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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介# |/ i; A: e% ~2 D' D' Z
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)" n, I! ^- G$ R
1.准备工作% T) N' q3 B1 P
一台centos7 服务器 一台 客户端4 V7 H7 O& [$ Q8 b
————————————————- S2 V; g* z3 s9 c
1、验证是否安装了SVN
; A0 d% f/ V7 U2 o& N3 W
. N- S( y+ G  p3 S  z! ]; I8 v$ u命令: # rpm -qa subversion
7 g' y( A% A7 _' X) ^
5 W* k6 r, V  |0 O$ m+ ^+ y如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_644 @8 M+ e& o% W- M; E) ?8 w' b& s6 A

8 C% l3 s5 f; \; t1 S3 w: _& ~否则,空白
. d3 S4 {8 M7 b  p( X8 N1 u% q
( E4 @/ ^+ q5 W7 |# w4 Z4 Z6 B; O  j2、安装SVN的命令
. e$ l$ A% D: h! ?9 B
9 F7 D( p+ p! U! D2 t7 _" U3 b# yum -y install subversion3 R- h# N0 s( `0 |: k1 I# x

+ \' k9 r2 T! E9 S# T1 H, ]接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录$ Z' V8 B; o# N/ x: {  |+ I2 f! \( Z
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
$ Y+ o' Z% h3 o; {, n2 J
% [1 y4 O$ d( e1 v9 Z然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置1 H: N1 z+ A1 Q4 B1 R" x1 g( |0 _
2 u9 P0 k5 f! I& k- b" f0 u
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)5 k6 _9 h) a5 ]! D) I( B) f

; {/ t  b8 @( t; h( c# _
/ j0 N5 ]9 n& e# Q* x, t, ?首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' q2 D, C- o3 @' @: @. ]) g. ]5 C9 J& e) }4 x3 I9 _; Y
# password-db = passwd. `0 R4 r9 W$ i6 @/ B1 t
: R  P9 `+ u) G
# authz-db = authz0 N* u8 G: e& t+ D
& W1 W* O0 J' @) p" u) p' c, Y

# x0 ^" A' B9 V- C! R# E( `  `: ]# a9 P然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
! W& P) J1 n# T, b
7 X: h9 W# r2 Y+ r登录名=密码
: H$ {% p$ u5 v7 i7 P3 _4 R" K- F" P9 q: V
user=123456
# Q1 u! J- F7 g$ q# \( h2 R/ p5 V- k) n/ z- j
9 i6 G4 s$ {7 I, f# ]! Z; K
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)5 }( B: f9 ^8 g4 F  s4 g/ z0 V
6 y6 k* x0 t; T+ F; m$ f4 ]
# * = r( [* f2 x$ {; E4 N- p% ]

7 y! u3 I% w& ~' n$ |4 Q5 i[/]% N4 ~' z* j5 j, n( R0 y) z

  E" O* H1 }6 L4 |" s. h$ Xroot=rw
3 {8 V9 y  E% E. B
4 H; [+ A% _/ P- M1 q0 v9 X这是用户的配置就完成了7 j) N: U0 t7 [$ }6 ~

) d$ h: H! Z8 g接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 c  P/ Y: y+ n9 w& x- wsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo6 A0 [1 R9 c/ [

  @5 _) @6 e7 G8 E使用此命令开启svn 根据自己设置的目录自行更改0 r. W% ]: D+ Q
$ p# F: B2 M  }; L
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了2 }/ I1 Z: D1 P8 g) L8 U
3 \0 W; j5 p; B/ b
- R& D: X# e8 s4 A6 U
win下载svn工具; e$ c/ Y  S1 D" U3 `- ?" a

8 T4 ?4 s0 k8 Z5 e接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了! o; b6 B; x$ s6 u  ^* A
8 U- O$ @6 l0 J6 i1 m: F+ v
' @. h( Z( ?& N4 |+ s4 S( R
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
$ R& F# z" b" }3 J; v! z输入你的svn地址 地址请根据自己的设置自行更改
- @! i8 C: I0 _+ \' R* R4 P2 `8 o( J6 Y/ _5 S
5 A7 X7 Y& W- x; x
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
3 f$ Y% x) p) y+ i# ?( ]3 D
" g1 q) t- b. g+ H5 c' ~- [8 N# f$ c% k9 F1 P; K
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)- n/ G! j& @( I) o
+ `; U" i8 a1 w' X
% B  J5 a1 {8 R
) J' ?' X5 G* Y; D$ L3 f
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存. ~; w9 f0 o* P6 {1 R, G: w! e

1 s3 n$ D+ c2 Z. B这时我们保存在版本库的代码就会被同步到网站根目录! e) r6 B  r# {; p( S4 b
: Q5 F+ J: x8 N, m0 Z1 m
* G: f( e; f3 I9 A

/ ?) D5 [7 a0 _: J2 Y- V1 R2 I3 u! ]; w2 H3 e6 J; \* {

( {- }, T& w& @# J+ o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
) T3 m3 @7 W+ o, k7 r0 \0 C, bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit  x+ S7 `) l: Z$ W- w7 I# ?
8 @7 n' H$ |6 [( A2 y
  1. REPOS="$1"
    / _, h8 T0 B8 d
  2. REV="$2"
    5 a: |1 a- Z  C  j. s
  3. TXN_NAME="$3"
    3 e1 p4 {1 X8 L2 M2 v% t3 b& W
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"7 F( S: ?) B, _5 J; h
  5. MESSAGE="$(svnlook log $REPOS)": v$ r/ D% ]4 K7 e2 v: v/ N. Q
  6. SVN_PATH=/usr/bin/svn
    9 s% ~. v4 l- Y1 G/ K
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    1 t/ X  ]* T- Y: f' ^, x7 r
  8. mkdir -p /var/log/svnlog
      A4 m) w, B$ K  x  K
  9. touch /var/log/svnlog/ssyleo_update.log
    + R; N  ^4 A5 R" N
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    8 x% Y$ ~. _! j9 J/ z
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    % f  f/ Z7 [3 w$ v2 @  I
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH5 l' m$ L) A( D) F
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    + s2 f3 U9 s9 ~
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
; J& I0 f. ]: L/ f; m3 P
. o2 a+ y* w& ?
  1. #!/bin/sh
    / Y3 U3 v# [  o3 W# ~; M. z
  2. #设定环境变量,如果没有设定可能会出现update报错# z4 C- W9 J5 r) p  D; s
  3. export LANG=zh_CN.UTF-80 K0 m/ W) a! W' c" q# D4 v6 J# A
  4. REPOS="$1"8 D6 l3 P, D8 y3 E- E/ y
  5. REV="$2"
    & e. P$ u& D% k2 X0 x1 a
  6. SVN_PATH=/usr/bin/svn* W( N' A( Y6 Z1 `; I8 z8 y; O
  7. WEB_PATH=/web/project# {1 f6 }: S8 M: ?
  8. LOG_PATH=/tmp/svn_update.log
    & F. Z! J1 t. N) [1 h7 M
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache3 R( u  S4 Z& Z" i# f; F% s- ]  Z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH  [( O3 j1 v6 @" p+ p) V
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH- S. O/ k1 }4 D% H2 X! G
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, e( @+ I; g6 K& b! I5 V
  13. chown -R www:www $WEB_PATH
复制代码

+ K$ b* j7 ]3 r8 c; H
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh; u. w2 [6 H- a* w! @, D* O: A8 \8 @1 R
export LAND="zh_CN.UTF-8"  c  w* K2 _4 I$ N% ~; M
REPOS="$1"' z; }8 V% |4 J
REV="$2"
( P# B" c, o9 ^# A; Osvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
5 M+ i8 t" U; P$ Zsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
: k) W2 j7 @7 Q5 ]% }$ i4 V; U. a

  1.   ]& L+ z, G  g0 l' S* r; A
  2. #!/bin/sh) L3 D. q9 t2 G+ ?4 s8 r
  3. export LAND="zh_CN.UTF-8"8 H4 U; W) f$ ?1 z
  4. REPOS="$1"
    $ ?  x0 [- R" z/ r9 D% V4 h7 P4 }0 ~
  5. REV="$2"
    $ ?7 ~0 V9 _4 i' P5 D8 _& y
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    9 E0 a& H" g9 o! ]
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

; P' H  i4 d4 t$ u4 h. B9 q5 F% o1 ], ~4 \
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-3 19:20 , Processed in 0.104010 second(s), 18 queries .

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