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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介3 u8 U% G, l+ f0 l" n& a
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
# A- {5 ^4 _7 p8 p* N0 [4 _1.准备工作
  e/ x; U* R* N一台centos7 服务器 一台 客户端
7 Y  ~/ p3 L* M1 n0 a0 y* B% V————————————————
, c  i  j3 x4 @$ a/ X1、验证是否安装了SVN, P9 u5 A, Z5 `0 Z1 X

3 D# u  {6 ~4 ]2 v+ Y$ G; X命令: # rpm -qa subversion9 q6 }2 A0 f% I- S: A

# w( L) s2 D5 R6 c9 o5 X1 r如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
7 k/ C8 U5 n0 i) E/ v
6 B8 G  V3 M9 E& D否则,空白
; N, `7 g1 U: ]( `0 ^8 `5 n, q. O2 O9 L
2、安装SVN的命令9 K: Q5 w- L; `5 D  v& ^5 ~
) J  U4 k9 ^- ?5 ]! S
# yum -y install subversion
# g+ l0 T5 t3 \- \
! k& o( D; w% R- t" z) s* `接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录* S6 `  s& B; L5 f% A4 N6 D
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" I" r7 Z" }7 D

  F  F0 b- R2 u: X, [然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置9 O' e+ i& P% F* o! x
1 K! P6 ?6 ]' e+ c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
$ W7 Y/ p2 e; p  W; c9 r4 K) t  ]8 A
; @# H$ E9 A& C
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
# ]3 I- }& y/ z- E6 A: T2 b/ D' f" W9 H% _( g
# password-db = passwd: U4 |8 `7 b- @

# J. t, p, c$ y' ]% d  c# authz-db = authz; ]1 G4 e) W0 U4 `3 c

& Y, o% v; v1 K+ T$ \0 q
2 ]. ~. b" ]" q& ~( K" k然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效% X8 g$ l0 C7 N( Y1 X0 U

2 y' m; j$ Z3 r) f登录名=密码
( P7 O2 j( z2 N7 T3 W) w0 E
% o7 E' u# e+ V4 a* S) vuser=123456- J, M9 ^3 ^9 \5 f/ W: N% K9 G; ]

5 j8 p+ R! t% p5 v5 D8 {; _% s
1 l; V, \7 L) @, [. t: ^, h; q' t最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)1 \' L) C, L4 w& f

, @1 K; N% s. d# * = r/ Q4 y4 ^' D( J& O+ E/ p6 ]# x

1 c' I& K6 b" m) z; n[/]4 M3 l6 W# s  H* `& v8 `4 ?
* E- [( _" Y' K  G2 h  m7 W7 }' [
root=rw. C- W3 c7 O3 o, h( c( r: x
; d- W5 `* X7 `4 a4 \
这是用户的配置就完成了
( P# J& y' v# ?$ K4 g% o
4 a" Z5 z9 g- [6 K4 j接下来我们就需要开启svn svnserve -d -r /home/svn/blog / B5 `( Q; a' T; h( Z, m+ a% ^2 B
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
- |2 r! N2 r) b+ ]2 s% s. z7 k0 y
" W5 r2 m5 L, M0 x使用此命令开启svn 根据自己设置的目录自行更改
. |: P/ z, ~! \* Z# i( B
# s' R5 E: L9 {8 s. Q使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了3 E: \# H  D2 ?6 p% A
4 @; V: t% s) E

1 U5 l# E9 E6 x9 S6 Rwin下载svn工具: s) H$ M& m+ Z  L
) N# W# Q  J5 F! t  [2 x
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- I$ l, l+ K$ q0 b  {  m" [
5 }7 K3 n5 ~' U8 Z  h/ v# s
' |! ?$ e8 V0 C& Y
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
; v2 Q4 J8 p1 z输入你的svn地址 地址请根据自己的设置自行更改
$ f, x2 X9 E% X1 l* f3 }* O" F$ G" x% u1 {
/ f( }+ S; X3 @7 V" E5 m, _
7 W; q! m8 H$ b; t. }' I) F' Y然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
3 k7 E/ |! F7 r* l% t+ g
! K6 R/ V: S1 d$ F" a1 C, H6 {+ m- A) j: ^8 p
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码), z* r, B* |% y1 U2 M! |

! d& H; {4 I! H  v" n! M
4 B, V- ]# ]% x4 q: l
  R. Q' D3 k6 \. p$ @, k3 P* `* C可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存2 U6 C9 E" e( B, }# Q( |" W
1 B, E1 C' }  _2 ^" I
这时我们保存在版本库的代码就会被同步到网站根目录
7 c5 T1 S. h  `
$ @( q3 I* h0 ?& Q& n2 b& y& p- K+ W; g8 K4 ^0 t2 c/ e- V
( M4 ?1 O( O' q
+ J9 P  v6 q2 b/ h: \
- ^5 |" L( T) ?$ i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录5 `- a- p4 t* F1 c" i7 o; l1 R
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 ]; f: Z% ^5 l$ E7 @& P0 ?! k2 {5 k3 t3 P  q' \4 k4 L2 C5 R
  1. REPOS="$1"; |: r: |8 I7 F* o( s9 c; e" W
  2. REV="$2"- P5 F, @, ~4 L* A
  3. TXN_NAME="$3"
    6 ^7 `- J% i9 N4 V" n$ i
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    + j, l5 u6 J/ G; Q% d0 K+ D8 z/ t# P
  5. MESSAGE="$(svnlook log $REPOS)"
    8 t' Y- r% f: o0 Q) H" d) R& X
  6. SVN_PATH=/usr/bin/svn
    ; A, ], R+ ]0 Z5 w# D
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    7 `5 O1 p6 j! C
  8. mkdir -p /var/log/svnlog4 A8 Q' b+ y* b! M4 f; d0 L2 C; P/ x0 A
  9. touch /var/log/svnlog/ssyleo_update.log" k: e* z9 g, J. J8 l  M. X8 g- q
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ) {4 ~* u$ a4 ~) j& J# c* g9 K- Y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH9 m; K6 [, X: H$ l, C  f
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH" [( x- n2 f3 [2 Z
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    & ?; x, a7 _% l5 g/ ]% l
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

+ E' ?. k1 |( `" I  @
+ k3 \( X- L! Z
  1. #!/bin/sh
    ' ]7 I8 w! g" n! w9 S
  2. #设定环境变量,如果没有设定可能会出现update报错
    3 t& ~4 k2 t' C# A
  3. export LANG=zh_CN.UTF-8
    2 O1 Z1 N! e$ P$ U
  4. REPOS="$1"
    8 u2 K: S: s$ a8 r' h
  5. REV="$2"8 M. L3 C, m! x+ F: G% O
  6. SVN_PATH=/usr/bin/svn8 H1 p( @5 p& n, l
  7. WEB_PATH=/web/project( T9 }' c" u$ `/ h% p* A0 l7 F, ^; u
  8. LOG_PATH=/tmp/svn_update.log
    + k! ]: u. Y! V7 u9 L. ~1 Q2 [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache/ v0 p, W% s* c& H
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH  d' _$ ?" t5 c* k# j0 |4 m
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    4 f( G: X  A( G$ K1 C" f# |
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% ?/ E4 ~! [5 l( G9 f& l, C
  13. chown -R www:www $WEB_PATH
复制代码
& \) J" H8 Y& c: A3 I# }+ D' J8 U
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
6 G" `) a9 y! m- n, I+ K+ Gexport LAND="zh_CN.UTF-8"
/ y9 p& I, z! y4 v9 S5 \" D! MREPOS="$1"0 ]2 Q) D6 z& q  ]5 ^; S
REV="$2"( ~; h. R$ x: z  m6 ], O+ O) o
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
. z0 P" \% ^& b/ ssvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) U4 ~) b; _; L$ d

  1. 5 K. P+ \: u3 b: E, L. Y2 y) V
  2. #!/bin/sh" N) i5 F% {# R! u
  3. export LAND="zh_CN.UTF-8"
    % Y; n: S2 }( f0 f" P9 t
  4. REPOS="$1"; `/ y3 Z8 ]& o, d
  5. REV="$2"
    5 @$ G# d" u- o3 U+ {
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
      d; _3 M% H# U
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

. j3 l, F/ k7 }1 w
0 S, c) S( C. B
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:44 , Processed in 0.062091 second(s), 19 queries .

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