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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介4 o4 _3 C6 y  @
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
8 F8 ?* Z# v7 Y1.准备工作! W1 V1 I$ I" A5 _0 l$ _
一台centos7 服务器 一台 客户端
5 @: Y8 m- a6 I" b————————————————; T- D6 E: Y6 b0 q4 \( i7 |% u3 ?
1、验证是否安装了SVN- g' d' e, C; S; T4 P# b) C! x
& D6 _" U( w5 N" e5 I  [
命令: # rpm -qa subversion
% m# f: r4 O5 b9 F+ e6 Z
7 Y; I) Y/ C) q: r# y6 m6 q  i如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64! _- ^% `/ X  y+ G7 f

3 g% B! X, ^, r" u( c' C否则,空白- m. \0 c# {( C" u8 ~" x% i  _

+ X5 k  j$ }9 n/ H2、安装SVN的命令% u; l" S: z: ^* H6 i1 m

- N! S9 a' B1 W: a4 Q' R# yum -y install subversion( ?9 q/ }3 a) f( }
) I# e% Q' J; ^! u5 N" G* E
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录: D; g4 ~7 ]$ A
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
+ C$ H2 {, s" h" u! ~) R  I/ m1 L* @* s. g( o; W7 H& G
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置( p. a& C* ~! ^% F* [
/ |. A5 L+ Z$ y! x9 ^) w) d; K5 c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
. y; m# C2 N/ o8 X4 B' Q6 Y& C8 ?' ~8 o! E3 S2 F! b+ d
; @* N( T8 I* K6 W0 A
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格$ a+ q1 l& |% R' p" `
1 i& L( E* q( I" W8 d  B$ J
# password-db = passwd, S" j( \  W. `; R" S+ t$ o
4 j  k$ J8 x6 E+ x$ H$ U+ |
# authz-db = authz
; u+ p" X' ?4 y4 X+ U
8 U+ J* ^3 W4 T; V) N3 J4 `4 D$ h1 s( M# f/ I4 R9 h
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效* G+ z( L0 K' Z
+ z. H" A; u3 J- ?$ q- \
登录名=密码
' m( P& o4 l: R- i! l  L
4 N* I; A6 A8 b+ E; Zuser=123456
0 J% W' k( K5 _7 P& c& q. S0 w: S7 P: q0 C
( d: h8 w1 A$ t# E, H6 v" f
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
9 z- Y. i0 H( }$ A% z7 o
$ R: @! w: u( h6 h+ {& v0 O# * = r
0 R) T% a* {( N& C4 B: A1 A1 d
  G' s/ X5 }# g& e[/]
8 g% W- h+ @: |( v" U/ ^
7 U9 I3 n- C  Q# |9 [root=rw
% x+ |- q! Z# x5 @% f' e2 W1 |
7 [& ]) U3 s) t0 d这是用户的配置就完成了) I/ f+ X7 d* t) l7 }# I

% _7 p' X. c( s接下来我们就需要开启svn svnserve -d -r /home/svn/blog ! G- b* y2 o1 X1 j( O2 N! d
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
, Z# o9 L5 ^% Q  G; H, r' b9 x- |% K" u, `& y5 l, M* u
使用此命令开启svn 根据自己设置的目录自行更改+ e! j: v8 b& z- h. x4 d, ]

( h8 c2 b: X" S) _9 d2 X$ g使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
  z2 I" W. q: G1 a
, ^! m+ U3 T6 c5 D: Z% D! K+ c/ R, a9 ?8 r+ w# p9 ?1 `) s
win下载svn工具8 K- |4 ^7 G& {" k3 k" T0 k" F9 s
* H* y, K. F8 W2 Q& F
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了% c& V" Z. E& H* A4 S

8 f$ J. a6 t* E0 o6 w: R
, [! R, f4 Y, L0 g) R0 f, Q& r重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码0 m* v- V8 r) N9 v( @' r( S
输入你的svn地址 地址请根据自己的设置自行更改- E& j- e$ W& `$ @/ @
' H! C, o/ p& l, \- a
1 x8 H2 o( {1 ?& ~) I7 K! i
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
/ X; ^9 \1 t8 Z7 q/ N# I  [$ K
$ y  l. \4 H4 d7 X) C6 a7 E5 o$ k1 M) [, r8 p! m3 T
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)  D+ U7 i9 _' C$ [
6 ~; l4 L& L8 i4 x

" {: j* ]6 W6 p: n5 v
$ ~9 o" W% |4 Y. D$ H, G' X可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
# I4 p% z. t) o* ^! g8 ~* ~" [
* z7 g) ~/ T0 j& M1 O; \& q这时我们保存在版本库的代码就会被同步到网站根目录' _6 q* l" |- G7 F

, W; \3 W8 [* Y5 a$ r* {$ p! Y6 \6 t9 O* Z0 d2 \' u
1 J- H. Y$ N1 m" o& y. v% a+ X
6 M  v& [4 H# ^% l# i

9 I3 g; w( W5 j- b( X$ o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录* s7 I6 K- X0 x5 L
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit! g8 u. H+ U) }
" h* L4 T# @) j$ z3 b+ V
  1. REPOS="$1"! ]/ X# h* m$ S0 `
  2. REV="$2". m9 C) s# R  H, j
  3. TXN_NAME="$3"+ C: L# Y& c, i  f: O
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ) _: f1 [6 x2 ]" D! Y$ i2 P9 v9 e
  5. MESSAGE="$(svnlook log $REPOS)"
    ; d: k+ M2 C1 ~8 j
  6. SVN_PATH=/usr/bin/svn$ `" W1 `. X6 c  P' \* }  G
  7. WEB_PATH=/usr/share/nginx/html/ssyleo- N& f, }4 K. V
  8. mkdir -p /var/log/svnlog
    6 \4 N. r2 o+ C6 Q& J. z7 c0 U
  9. touch /var/log/svnlog/ssyleo_update.log! t6 G5 U1 ?5 J+ F4 F/ |
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log( X0 {% z& \( B: Q7 H
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    9 a/ b6 g! O8 y. P
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    : @! }  D. W+ e! j
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH. ?$ Y. i# c( T
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
: K7 e0 g! x/ I0 e/ q  O- S
) t$ j- i# v7 s/ G8 h
  1. #!/bin/sh# O, A4 W! r3 T) f
  2. #设定环境变量,如果没有设定可能会出现update报错
    - H5 H7 }4 L% k7 F( M7 S
  3. export LANG=zh_CN.UTF-81 E# B: C5 _9 l2 A2 ^) [
  4. REPOS="$1"
    ) w% v+ Y/ m  w  W
  5. REV="$2"5 m; A, [, K5 c
  6. SVN_PATH=/usr/bin/svn$ m1 e) \2 Y& ?5 c
  7. WEB_PATH=/web/project- N+ G* x3 o* X2 t
  8. LOG_PATH=/tmp/svn_update.log% k7 o# P1 O: b2 G
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache- K# H6 m6 s" v" j3 {4 f+ w- H
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    3 \+ @( g: h0 R
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    3 S; `8 s$ O, a/ j. J  M6 r3 z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH/ t% @+ H& j5 Q1 W2 e
  13. chown -R www:www $WEB_PATH
复制代码
  }( W% u6 j: n/ D
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh* R$ m& j& Z4 `
export LAND="zh_CN.UTF-8"/ ]. g8 b+ X8 n& _8 x
REPOS="$1"
% Z. |5 K$ c) l3 h) CREV="$2"
. D! M" v$ p! {4 [* t0 A* gsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
' s9 ^; L( d1 ksvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
# \5 K( [; z  D
  1. ) A) E& g; X9 g3 V
  2. #!/bin/sh
    : H, `; z( V' q  S# W
  3. export LAND="zh_CN.UTF-8"' E( w+ ^, ~- W+ ]+ \  \
  4. REPOS="$1"- @5 m- o$ C. [6 V3 Y- p- _
  5. REV="$2"
    2 Z) G7 }- n1 e( R4 d* }/ r
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    : A( A" X5 T# z' \* O
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
! b$ e% ?2 Y. B% G

. p  k1 l+ h5 j% G
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 03:14 , Processed in 0.051718 second(s), 19 queries .

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