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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介/ ]- k. s) S+ C5 L# N6 S3 g9 R, _' U
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略). x  s( r; d/ j. J9 x, A
1.准备工作( d9 h1 {6 N, y$ ]
一台centos7 服务器 一台 客户端
, R3 Y& c3 R! L5 d: E6 v  \————————————————
  A- X- B4 c" _5 |1、验证是否安装了SVN
4 |) i  T" Y) U: L* P7 y3 X/ o; g# U- V
命令: # rpm -qa subversion
7 ~( B& Q7 P7 \; s- k3 H
  x1 ^( {  u* n; D如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
( Z& ^; ?4 c" S4 F& `) w; W" G; I( x, i1 }
否则,空白& c  l+ M' K& l3 E. L
9 V2 u! E8 }3 W# Z2 x
2、安装SVN的命令
" G5 Y! Z1 }, [( n6 b+ ]" a- K, F) w( f- y6 P' C) j
# yum -y install subversion9 |/ @  ], N7 ^& m, B6 W

/ y: a) `$ u7 l3 f0 c! ]4 u2 B接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录/ u  Y' P" f: L9 R0 i; s5 v. O' t9 D
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ z* w$ V" T, d, D

3 y* \# n( e# ?) O1 p0 q9 ^1 U5 U然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置1 ]" E" X1 J; c: j) d' v

4 t/ v9 \# m3 s7 h! c; Osvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)) ]+ c+ d4 i+ |" Q# D& n
5 [5 }% s7 c# T4 R6 q  L1 N- w

5 N8 h: S8 k5 o2 w5 _" @首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格8 V# r5 m8 ?% O: [' p- x9 @
6 g) y) o& x5 ~+ C
# password-db = passwd
1 ^1 J1 O! ]* K/ L9 K4 j, r2 f' T" }* E. K; h+ _3 W' `
# authz-db = authz% H& ?2 Q- [+ `
9 h* {- q1 g; D; R

& K8 @& P. v3 d6 P. ~8 \- j7 D然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
* ?2 p# C3 ]  T9 Z' F5 C
7 k* \* |2 b. R: ^( @! o& ]登录名=密码
& ~6 F" e* u) N
0 L' q6 @: L. xuser=1234563 {' K4 W4 \9 k- F7 e8 s
9 v; h: u% g0 J" ~6 }
; \' q+ o! R3 n) ^  T
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)/ ]2 j" }2 V+ r  t4 I
/ A) _$ O$ o# @/ `- D  e+ n8 l
# * = r
+ B8 B6 r) s) _2 T* e+ h* `8 b
, |: u: G6 @/ J$ h[/]
2 P0 r/ K' {& R  R( b0 c# j% ^! S1 J" V. C1 V% U' e
root=rw
( Y% K* Y" Y, v( H' ?# Z: W( n- i& O, f
这是用户的配置就完成了2 ?; c0 w: w1 F- q3 s

9 b4 X$ f+ r% C. F6 y: q8 s接下来我们就需要开启svn svnserve -d -r /home/svn/blog
3 _. i$ y7 r0 ~, t+ _svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
) Z( ], M  Y: D! m- j; d3 E3 q; S# G, W3 N
使用此命令开启svn 根据自己设置的目录自行更改
4 g; G' t1 i' @* g6 r3 l' B3 \" w6 d% o
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了- O: ]* @4 |7 S
/ G( z& q  x, R/ V8 _8 y
/ D, j3 u$ y  ^* u4 H' L3 B
win下载svn工具5 @) Q$ d* O- s" n) z
# t9 `! {, M" ^9 X9 R
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了+ g2 \* F6 Y! }6 W/ G' n8 d

3 B# V4 w, L7 N, d9 P8 w6 S5 K2 O) |! d) ?1 Y4 q/ r
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
2 ^" V# }! \7 e% t' j- z$ s- @输入你的svn地址 地址请根据自己的设置自行更改
- E7 i( G: g8 w3 T: n) B- g
, L  C7 n( O; A0 }3 z* {; f: ^, r% ?3 A
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
" t# z) F, s7 z  {! M2 l& o( M5 s- w. u9 S4 H) s

4 I; w0 P2 n2 N) N& `1 @(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
3 P  Z! E8 l8 c) w& \$ ^
6 I; c" J' A2 j( N, D( M
. ~' H* ?/ V, @) `* n& K, ~9 i- u" C% F9 n4 X( [4 `% Y
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
7 {- A1 I% L* p4 [* ]4 t+ H) d, O* H% v7 K8 \
这时我们保存在版本库的代码就会被同步到网站根目录
/ p) t& ]( z0 V+ c  `& @" [; \$ I4 ^) H; Q; Z/ v6 a6 O

- G; }/ J) D0 C8 x/ J  D$ x" F. G; R

+ T) X/ N! i% h' k/ T
/ x: C' C' ~' C7 e( z! E' S* T0 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
2 K! z) i- S7 @9 U4 u% H' }cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit7 ]: `" {  C- G" N$ ~

, Y$ V* X" {% x, A! O. w2 o- Z2 D
  1. REPOS="$1"
    + `1 C+ _/ d9 N0 q( \- T
  2. REV="$2"
    + ^6 C4 x1 P3 b
  3. TXN_NAME="$3"
    6 Y/ U* L1 Y3 r7 k- G
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". E4 n4 j3 e  Y' S% z. U- w
  5. MESSAGE="$(svnlook log $REPOS)"
    8 ]$ N% G- L8 R% y2 |* V5 _
  6. SVN_PATH=/usr/bin/svn
    % m( w* U4 V( ?% u: L
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    " P/ R3 o8 K' `
  8. mkdir -p /var/log/svnlog* ^0 o. F6 N  i; O" D
  9. touch /var/log/svnlog/ssyleo_update.log$ A( x- m; p; M% o, j) r
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    * e& i9 ^3 C+ [9 D2 n  M1 e  G
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    " s5 A, C: d0 l  V0 L' l: s: t( K
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH9 {& ]/ Y5 m& b6 E4 {3 C6 o
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH$ d0 {/ s9 l3 R+ _7 ?; g/ T5 _
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
/ D2 U! k) }3 f4 }; Y

: k( y0 b: |; r
  1. #!/bin/sh
    1 D' Z4 l( n# o) B1 l
  2. #设定环境变量,如果没有设定可能会出现update报错
    $ d- o) W  a$ z% n( \5 D
  3. export LANG=zh_CN.UTF-8
    * c6 v0 e- Q9 z7 `1 S2 M( Q7 M
  4. REPOS="$1"
    9 b$ {  f6 k% b% W1 m7 `
  5. REV="$2"! K  C* H7 @0 H. W7 I+ t
  6. SVN_PATH=/usr/bin/svn" j; N  U; s" ]4 u% k  G
  7. WEB_PATH=/web/project- _0 T' g- z( W- J
  8. LOG_PATH=/tmp/svn_update.log7 I5 v) i3 C4 M4 ~4 W
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : [- S$ a& S4 D0 [
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ! R& O3 G5 P" |8 L, E' q) e5 `3 E
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH: |* f. \- r9 \. a3 W, p
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH9 L8 g) ]6 {& E, j" c/ r: i
  13. chown -R www:www $WEB_PATH
复制代码
2 W0 e: x3 [- Q3 ]7 c
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh0 N7 s, T) k: @6 [$ p
export LAND="zh_CN.UTF-8"+ k3 D- X& Y2 J; b
REPOS="$1"  F; I$ w. G& k) k: s" x, ^$ I
REV="$2"5 F4 g0 n8 J5 K5 k1 V) h
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
3 W1 Q( e. k# E0 ]) ]$ N( Lsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
9 N! V2 k0 i9 t2 A* J
  1. % |- n: h0 }) I- q  T
  2. #!/bin/sh
    4 c# @5 Q/ W/ Q/ ~: w* k
  3. export LAND="zh_CN.UTF-8"7 s. c8 @/ f! E/ m; T  g
  4. REPOS="$1": @- Y4 _0 C% N( r+ |. G* D+ ~
  5. REV="$2"- d1 v: k; O; M7 I0 M
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    $ i/ p& n6 g$ L' Y2 w  m1 I
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
( S7 R9 \( B- v4 b

0 W; s2 z2 P) K8 W1 X9 T
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-7-20 18:16 , Processed in 0.072156 second(s), 20 queries .

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