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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
! H8 }, T5 b# ?- a) r9 n- J4 xSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)4 D1 Z2 S- ^( ^1 y6 [7 |, N, Q
1.准备工作
' A0 I  z2 x" Y# @. r8 `一台centos7 服务器 一台 客户端4 r: g. I" R* g+ F+ S, u- h
————————————————
6 _; @$ _: X/ _& O5 x1、验证是否安装了SVN4 k- l- Z# w+ S! @4 f
. j( k7 ?$ D) \: ?# K( n" d
命令: # rpm -qa subversion1 ^/ R$ [3 S5 w' K  T
) _4 ?* s3 @$ _$ J) `7 H1 V) K: \
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_645 \- {' r2 l( {& f2 D# p
! t$ ~, H; \% Q' s  z. D
否则,空白
. j; [) Z' k: k9 y, P, Y
9 U9 U# v* h# m! v( e2、安装SVN的命令# Q7 c' z8 P3 D8 O% ?5 @$ x

' D& ^2 q; U! h8 t* @# yum -y install subversion3 D+ a. F& }1 d% w7 }. O: b
! B% h* V6 h/ n/ K% S1 A6 t! M' a$ M; u
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
; p1 A9 g, Q# }创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了6 ~# r9 v* J  i. O( J3 C

; E7 t; X; z- Q% a然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置7 f# ~# c  I$ e5 K' Z. w- n4 {/ ]

, l7 f2 Y( V$ s! @6 [! Hsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
$ U. w/ @+ Y4 B, f" x6 Y4 v
. o2 [& J9 q' C  |8 `1 H* a4 w- \
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格7 F4 a: s4 G$ \

: Z7 ?. {& V2 _& s1 S) ?7 h9 a& @# password-db = passwd* f' l0 H4 J; t0 K4 o3 G8 R) {
" C5 N6 a1 Y+ H
# authz-db = authz
, Q+ y+ P; m; A" R& s
- V* t& t( e; O4 h3 ?# p2 o  t1 n- @: W
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效6 x' w* V/ j" x
% o' `: t+ N8 J! Y% v" S6 v
登录名=密码- C/ K5 k, |. L: I/ y
9 X5 G8 x. T2 j
user=123456
1 [+ v9 W$ e6 |( W, I3 T/ T# E6 Q3 d# N" g# H
5 j2 V9 E. _) _) z! }0 c: d
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限), z6 A! ~7 O& Q0 J1 B9 y
+ \0 F2 t9 R; i! y7 p0 e8 L
# * = r: s. C5 p7 M' c8 j0 C
, Y- B, |& E5 g0 ]
[/]9 M; l8 B: }* d9 v- a* E

) w2 F( Y2 ]4 B3 b" e: X; j2 Sroot=rw/ d/ |; Y. n. ?* m
; z7 v& h( \4 L/ D
这是用户的配置就完成了
' @8 e2 ?( a4 G2 B. h) v  J5 ^
1 {; c4 K1 d- y接下来我们就需要开启svn svnserve -d -r /home/svn/blog ) ^6 o" b/ @2 s" O+ y$ W: x
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo# W2 S+ X/ B+ K7 s: E8 P

6 b0 M4 x! y4 M$ D) V+ L) m; t使用此命令开启svn 根据自己设置的目录自行更改0 n! o' ]  w& s$ W# u0 ^1 h' ~# |
0 w' v4 K, l' x. @
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
( a. P& P* k6 H# Z8 C* q
: B+ {) w) V9 E: c* O6 v+ S7 }% p  a
: I& @, C* b) E% v5 B9 s: J" pwin下载svn工具+ _5 G4 V) D0 b' ^1 }2 q  {
7 E- |! ]+ ]4 Y9 s! v2 J& Q
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了' [8 K6 E4 s% `1 G9 ^) i# W! e
1 F; L/ S. h3 F, @* V/ f! x

1 `" D. {' n; W% a  o) a重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
! |$ r4 W# \2 _: M8 v* g  [输入你的svn地址 地址请根据自己的设置自行更改" B- ]: ^) ^" P  ~/ F9 D2 Z. x4 ]# S9 H

- Q' x6 D5 X6 N# O
+ V# w( B5 R. X; P  |* ^- H然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
! c$ c! m, |- c, j+ D+ c; I' ^4 c8 y& c, W8 d
$ K; k+ _+ Q( m- \9 d
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)9 |, T8 O  L8 J. z6 ^0 f0 |, V

4 _2 ^% c2 `8 D& {  T/ j4 T- h. e9 t: K: M2 A; u# F

3 Y9 N* d* [4 P% B% \4 |8 v可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存$ [" @4 i( U, p$ c' \9 m3 d
! m1 f7 N3 a4 F% y" g; c
这时我们保存在版本库的代码就会被同步到网站根目录
, L6 z3 ^4 ^0 s+ n7 y* h5 O6 X, q1 y4 r" v1 E% l* c

  h0 f0 @1 F2 h  R4 p: P
. j3 u- g; _1 j9 N
# F0 J8 {- c, ?
% g2 o5 s6 M4 i8 k. b* g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
! {* q4 [$ @7 m; @* i: B0 a. Vexport LAND="zh_CN.UTF-8"( [0 F* w; c$ P. U* Q1 h
REPOS="$1"/ k7 d  s+ {) Q6 \& h
REV="$2"
5 `( y! v  m! B2 W% I/ Z# usvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. m- b; v- W! `$ E, y
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# m! D& K& n$ c" H, o

  1. 3 V- l8 B% k6 w9 B% e2 `
  2. #!/bin/sh1 n8 v9 Q. R) ]0 |" X
  3. export LAND="zh_CN.UTF-8"
    / y6 Z: H  K. ?" t
  4. REPOS="$1"
    & z* A2 n" O% S5 y- O
  5. REV="$2"
    5 s8 C' E4 s9 W1 l
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 r! O; V, _- N( i
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
% n  Y; B8 d  m" t% V+ ^

" ^- S. G2 r* k/ b" \7 \
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录7 u: h  X2 ^  x" f) V
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit/ B& Y# @) @; j4 h. k4 L2 s% U" f

, L7 j: o) p! l# G# c: k
  1. REPOS="$1") y* R; ^5 ^  @9 ?
  2. REV="$2"
    4 Z4 k& V, @; x6 u# T
  3. TXN_NAME="$3"
    ! r6 P0 a4 {( E
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"0 P; t! @2 c" V6 I% z! W
  5. MESSAGE="$(svnlook log $REPOS)"
    + H: b: c! @0 t2 x0 F" r: K/ Y
  6. SVN_PATH=/usr/bin/svn
    / z% `- S" \, ]( J- D5 x# {
  7. WEB_PATH=/usr/share/nginx/html/ssyleo3 U; v' ?+ W& I8 H
  8. mkdir -p /var/log/svnlog0 m6 Y: p6 C7 }& {/ l
  9. touch /var/log/svnlog/ssyleo_update.log5 n& e! L( n9 _; o* k
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
      e2 Z& R2 y2 c1 @9 ?9 S8 t
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    $ i/ D: H* I) B" {- o  D, P. |
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  y4 J2 N4 o2 a
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH8 Y% V3 N  z. v7 w8 x1 B1 F
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
/ e' O7 {4 f; ^% d

. G# M3 P# R* A! @- ]/ A
  1. #!/bin/sh0 Q+ t; W$ B% W  A9 i
  2. #设定环境变量,如果没有设定可能会出现update报错  t8 I( q1 ?, r) ~% m
  3. export LANG=zh_CN.UTF-8
    9 L9 C7 S4 M. b! `- h5 U
  4. REPOS="$1"
      |, h8 v/ M2 ~
  5. REV="$2"
    ) L# N9 [& v6 G' D  r8 ?$ s
  6. SVN_PATH=/usr/bin/svn+ x! w! Z" v& b6 W% L
  7. WEB_PATH=/web/project# t! z8 x  _" o0 d$ r9 c: x2 D
  8. LOG_PATH=/tmp/svn_update.log5 p6 X: p5 U) r2 Z' q, b$ E/ [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache8 H, @% u* }9 Z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* [. N; u1 i) g, B+ U
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH  L. B5 u7 s( f' J% G/ c& P5 g
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ) C$ n( P) B* [. [+ I( j1 E
  13. chown -R www:www $WEB_PATH
复制代码
3 z' y) q3 P" d, W: k
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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