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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介7 g+ K4 F& j. v
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略), x; ~' R: b" [0 B4 j* e5 h. C$ i5 r
1.准备工作( _) G% W; J9 G! b
一台centos7 服务器 一台 客户端
8 J5 {" `% M, Y$ f  h# n3 y————————————————* Q5 Y/ S! Q) {. f# }& c
1、验证是否安装了SVN
7 p$ B# M+ W$ f) v8 ~% J
7 a, j! {) _6 H  f: B2 F7 }3 y5 d; L, L命令: # rpm -qa subversion
; Y6 J& K8 k% b0 \
! j  e! w' M8 Y* ?0 U9 d' d如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
2 @! Z/ B" c3 S
. g& G! V9 B' b1 M; c8 U8 L; e  j, y& l否则,空白. V6 X1 n# K& H% c, v+ j
1 {: n/ z( U0 [8 ~4 z, X
2、安装SVN的命令) E1 |% k& |( ^0 n, {
  N2 w2 ?5 _$ s9 f1 i: F, |: z
# yum -y install subversion
7 @) I' D$ Y( k. u+ `4 U2 ^3 G
- `& ]! ]# G7 G( n接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录4 d0 C3 d4 {$ B( @1 w; t
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了- d9 c! a, b7 s, h6 q9 D- {& Q

* I% M0 q8 j0 ]( B5 N# D1 b然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
$ T, q2 K; q0 T$ i
/ P* @* E. r! {+ Q# Hsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
5 |) d) ~& b6 n' O/ V2 `% e
9 E3 S. H6 ]# E( \1 x& V. ^+ t( B2 S9 W: i5 W
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格1 ]# f2 z# S* Z2 I/ A. w9 h
( _! Z( ^' v) _6 r/ s
# password-db = passwd
5 s: I; F7 F" q9 {' }8 _2 j. D; ?5 H: @: B$ ~
# authz-db = authz+ o- J* ^, k: ~$ p# K7 S
$ q  T* v, v7 `& I; _) Z
6 F* ~* [8 O% Q9 n4 H, S
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效2 z6 W( T" l" d4 h/ B. @/ |

$ C1 x/ S7 o# `7 ?  ^( k* q9 K  }登录名=密码
6 b% Y6 Y0 j" i6 G( R7 y
1 Z4 z7 L2 ~3 j$ E+ D2 J! F: f8 m- Wuser=123456
: D$ D4 Q3 t# ^2 n$ H1 V4 {' B4 t" E- ]3 \

. `! ^7 c* V& H2 u7 q( V最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)- I% _5 |+ i  B7 g
; k7 P) g1 _3 j
# * = r
. R' x0 N3 u2 \, ^( v; _8 j7 R
' X8 ~2 E5 q6 m$ g& ?[/]) ?4 V: [4 H* p0 M3 @; M

$ ?5 F+ [& D9 \6 R+ Yroot=rw; S/ r2 X  t6 j( ^

2 n# q* q( G; K4 D" L这是用户的配置就完成了- F" q9 z1 ]8 _. _8 ^7 |
, r8 |) ?5 j& K
接下来我们就需要开启svn svnserve -d -r /home/svn/blog $ [: p6 h$ e& r4 s8 A8 N3 C+ u
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo0 F& L0 k& j, S9 u3 y' v

! l4 k/ c: z8 I3 d" `! m0 R* Y使用此命令开启svn 根据自己设置的目录自行更改
+ j9 q2 C, q! s/ U9 W
/ Q6 z: Y! @/ o. Z$ M使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了1 n( d1 {. N8 i6 a/ u2 n$ x

7 A) V, O. M+ D  F( k
' a! g& S/ ~/ Owin下载svn工具. c- W% I  q9 `# ?7 ^

! {: l+ j1 ?, M* _/ u' U9 G接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
  v. Z% x- l4 l/ g
2 _$ ?) H2 {, c# ]# A2 Q: i
6 g6 j! o' {) w, E重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码& L; S0 p2 y! ^
输入你的svn地址 地址请根据自己的设置自行更改9 N; K! I1 `- Q9 E) g  `4 C
) d+ p, G0 j, X  f0 I* ]- H
: E' @. B* I# v( Z% R) K5 D3 G
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
1 [1 V2 u7 u2 K: e( y; P, F; j
! d$ y1 b* }$ J
- q7 m' G* D& O(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
( I0 a: X/ M' I+ w) S6 F$ ~- Q. N1 l  o7 `. j" M8 p
% q0 L9 F5 I6 f  a
# _; X/ i+ t! J5 _+ s, B/ @
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存1 p3 T# u" R: q1 ~+ W$ U

+ ^5 k+ \1 X0 i; j  x这时我们保存在版本库的代码就会被同步到网站根目录
, [6 {% f, Q7 z' r: T$ E: s
, O6 Y2 i( g: M$ a' J6 |& K1 }
7 b% h  h8 x5 L( D3 O0 V- _/ h( e, y2 W! N
* M, g5 ~3 l9 }7 }
$ r; ?; _1 O! y8 f3 t- J1 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
/ Q8 D3 f) n( A3 D6 }/ [cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit* b6 K$ \5 R* }4 i

. @) d: \- l6 o* X; E) i! g3 x
  1. REPOS="$1"0 L, _5 ^, p3 j  p' m  i
  2. REV="$2"
    , C( ^# a/ a+ `' N
  3. TXN_NAME="$3"& ~' q3 c2 k7 k) @  f9 i
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"; E4 H/ q: i* O7 B, s, E7 m
  5. MESSAGE="$(svnlook log $REPOS)"  ~! \. L& p$ X& B' J" l+ B, G
  6. SVN_PATH=/usr/bin/svn, f' z- m  c/ ?, v
  7. WEB_PATH=/usr/share/nginx/html/ssyleo$ ]3 C8 g) I6 c
  8. mkdir -p /var/log/svnlog$ p' b, e' L& O4 A+ v9 p7 N
  9. touch /var/log/svnlog/ssyleo_update.log! ~3 i9 m+ j# w( c: |
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    8 x& Z% g6 {' a2 n" C2 }
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
      ]# x& k0 Y# a0 J& q& C
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    , M: @' g- G6 v  U* h
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH) v1 h( r$ K% v/ [1 `8 e6 e$ Z$ b
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
; L( \& x9 Q  X/ M

" S' q; M: w& z# U& n0 }- q
  1. #!/bin/sh
    , S' W" e) [3 E7 {+ T! C1 _
  2. #设定环境变量,如果没有设定可能会出现update报错# g" i0 n& \* ~5 w# N3 S
  3. export LANG=zh_CN.UTF-8
    : O* P% }& A  S, }( F$ k- b
  4. REPOS="$1"
    . e' }2 A7 L  G+ Q/ r4 L! F
  5. REV="$2"
    7 ?/ r* O9 k% H
  6. SVN_PATH=/usr/bin/svn, |, ?) b' R! B  p4 a5 ?% s
  7. WEB_PATH=/web/project
    7 f1 q" W- ?* g7 ^$ Y9 b
  8. LOG_PATH=/tmp/svn_update.log
    3 O7 G+ X2 ]! E! t/ ^7 L
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ( b' a+ i+ e1 I; q, C4 u
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + ?: Q7 c; l5 L$ k$ x
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ( ?: l1 d  y7 b' p
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, Q" {2 i' x; l1 `" Z. j# x
  13. chown -R www:www $WEB_PATH
复制代码

6 Q( s3 V; ?/ D2 {- M
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh9 f* o8 L' {% U3 m
export LAND="zh_CN.UTF-8"4 M) i3 j* ^7 J( x/ a
REPOS="$1"
5 Q1 C, u- l7 }  Z; u( U0 |+ Y( {- IREV="$2"
; n( c+ o" v( h: Q( `svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache, w* p) c1 r' u* G; x5 K
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache1 O) _2 [. L; C

  1. 8 ~( ~5 v" Y4 C, B
  2. #!/bin/sh9 V. f% b/ B; z' e! R
  3. export LAND="zh_CN.UTF-8"
    : r) ]9 b8 x, S6 b  I3 h1 c
  4. REPOS="$1"
    ! B# e3 t2 H0 x% m& p) q
  5. REV="$2"
    $ c: k! {0 \# g0 `
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache4 n- \6 E* T# \3 i2 F+ T9 ?
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
) I, n8 O: E( d, q3 _" }$ y

4 K0 D' |4 b1 f, B+ x( B+ M
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:44 , Processed in 0.079329 second(s), 21 queries .

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