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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介7 z6 n5 Y  j* m* N) t
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)4 P3 I7 t- ^1 V5 @
1.准备工作
1 J7 c3 K0 s: A6 H& w一台centos7 服务器 一台 客户端: ]& s6 Y6 ?2 I7 I% E( z
————————————————4 s$ @0 G, C: G& d
1、验证是否安装了SVN+ d: o, ^5 w( N

5 ^+ t" `" @- O命令: # rpm -qa subversion
1 P9 y7 b$ k  P* e9 D! i7 V
  f% `4 H7 U4 p如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64( }& S* @* j$ x3 r7 f$ H! L& L

5 b& X  V6 @* d# |& V( \; ?6 G' P否则,空白; _: @1 A! e, @' R
7 p6 `* i2 Z2 O) X  z! k6 u1 Y
2、安装SVN的命令
# Z% A" y) W2 b+ A" I( z: b  t* h) [1 ~: s* ]0 a3 B
# yum -y install subversion
% U, k' [( Z  @4 ]1 T9 ]' U  I7 f' t9 U! g" }, Q
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
( G- [7 }3 R% r创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
: r! a5 k9 ]3 _4 q' G9 q8 r+ u2 k$ z+ a( a
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
. ?6 v8 H) ]- m2 F3 B4 G
$ {6 u# q/ x/ V4 _- Ksvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)* g" w% c0 z( H5 k* ^

% Z( O& Y$ \6 g; f$ c* _& G' L- @$ E) f$ P0 ?
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' G+ W- v3 D: ?: q/ P  L
& M# P0 f' U1 x# password-db = passwd
- ]* v7 o' u$ C! q
9 t6 G% P8 J6 o9 C. @# authz-db = authz3 {$ P2 ~$ x- E; F" l0 ]
* K+ S* |% B" X, L

/ V( d- Q7 G9 b; l- V然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效. g) j2 _1 T# G7 |& b

! y6 O2 V  D+ j+ p: d登录名=密码0 _4 j$ X  S7 j& |6 x

3 y( O' }# W2 fuser=123456
- ~/ r5 I7 K. h5 a5 x, C/ M+ w# f8 W& s( `. X
$ `" y5 }8 g- X7 k1 P6 ^$ A
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
! a# K# z* C. C/ y* }2 D+ B
8 k* ]4 Z) }! N& |2 W; ?5 }# * = r( X8 j3 S0 M8 f6 \( R" g- F

' {$ W- T! ?7 n4 D0 m0 y" Z$ n[/]
7 ^9 w* ]' G5 I: J) O5 \+ m
0 Y* x  ]9 A, n- t, y) y! l7 f2 [) broot=rw
: `2 B0 `! ^1 C
+ n  z$ [; ~* `( j5 L. X1 G. L这是用户的配置就完成了  j8 u" j& S$ _9 V
2 u% c+ f* l& o5 T2 F/ `( a+ K* Y
接下来我们就需要开启svn svnserve -d -r /home/svn/blog ' `& `7 b5 K6 c- L  W. l
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo! T: B6 _- v4 J4 T3 y. F3 v

1 Q' g3 j2 w4 V3 O7 y* i, s使用此命令开启svn 根据自己设置的目录自行更改
. b! J2 U, O9 a4 }3 l1 A/ h" J( q' a: v5 T6 W& K. ^
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 E, U2 y1 t9 k1 g$ c- |" F# H9 `9 U  P
6 U: ]& K# w, k" V( s8 @5 P7 m
win下载svn工具2 Y) L4 ^3 n4 T' [. U6 i

# p- g% Y8 T# @6 F) J接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
9 @. H; `3 g4 v
- N3 K& D9 m% m9 _: S1 v6 F) d/ n9 g$ {
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
' H8 k  \% J6 M7 y8 W( X: t输入你的svn地址 地址请根据自己的设置自行更改" K$ Z( y& `6 s

0 `5 O* i# y/ F: s& z6 X
- F0 _# @, J5 ^, c) R) c然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了2 {" C7 k. l' h2 b/ U
0 @* l6 d% ?' g; N7 l
0 w, e& {# y1 F* R, O) @
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
  Q: j/ m! R0 }# F% [) R" U& `, U/ G, j% r! |, A
' Q+ D- B- _; e7 P1 K2 @( O6 T+ {
0 _  ]$ m, W5 W7 y- s$ @+ J
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 o- K( k/ z$ I- V1 Q+ ^7 }* i7 O9 G
这时我们保存在版本库的代码就会被同步到网站根目录
7 S8 B8 N& x+ I! D5 I: A: p0 K4 P3 |
1 S! n, u: e$ l' |0 U

+ G: j) k4 H' ~" t) q( N' _1 z* r5 t% Y
' h5 ]) T3 L& g2 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
  u7 Z1 q  c' U/ e3 N, O0 S) B* ?. Ucp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit; C7 K8 R; D3 Z0 I' B) h- N
9 |9 O+ p8 y: r  f: j6 \: a$ ?* w
  1. REPOS="$1"
    ) D$ T$ ^+ u, b# r0 K! }7 n6 B
  2. REV="$2"9 z! o; ?& l$ j8 h* r# x
  3. TXN_NAME="$3"2 `: n" M. b7 V* k) {
  4. AUTHOR="$(svnlook author -r $REV $REPOS)": P- Y+ c/ y3 q+ i
  5. MESSAGE="$(svnlook log $REPOS)"; d0 h0 Y3 a" @, [$ r: p
  6. SVN_PATH=/usr/bin/svn
    ' Q. |8 r6 f1 j- u
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    " X% m' \: ^- w0 Z; x( B
  8. mkdir -p /var/log/svnlog
    % H" R8 d0 w- ]9 J
  9. touch /var/log/svnlog/ssyleo_update.log/ r  y: s- K7 l- N
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log& Z/ L9 U9 F" T% U4 r, e
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ) T" J) T, j( c3 d& @' ^
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH- B" U9 R5 i: u6 [( R& y
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    * m/ I$ ^1 w& E+ q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 I: k; L; K0 c8 Z' K; H, l5 ^2 I* d- x; N/ L9 M
  1. #!/bin/sh' X& f$ d; [; e# p% V
  2. #设定环境变量,如果没有设定可能会出现update报错0 E+ I8 _% ~! J3 S9 c
  3. export LANG=zh_CN.UTF-8
    " f5 e! u% i0 C* t& v! }, V: E! e
  4. REPOS="$1"
    ) g. Y1 |3 b5 Z) l; o" l8 y
  5. REV="$2"8 O2 F' o% N8 i5 H! C% d
  6. SVN_PATH=/usr/bin/svn- B* c5 E* H' X7 {; J7 t
  7. WEB_PATH=/web/project0 Y7 c8 q4 b% h) b: Y2 K# }
  8. LOG_PATH=/tmp/svn_update.log* Q! P% {% m3 d3 ]) C8 w
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : b2 ?' ?: G+ K9 h9 X. h
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH* p% Z! u& g7 d9 o
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    2 i5 ?2 \; K; Q& K3 u9 M/ E
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
      A  @: ^1 w- h5 s- n
  13. chown -R www:www $WEB_PATH
复制代码
% k# M1 r! k: C" a) r2 T- q
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
9 `9 [; H" g" X. gexport LAND="zh_CN.UTF-8"7 a8 t7 z' k1 v0 }# X
REPOS="$1"- Y9 q- q0 y7 @8 |9 J3 R, r; Q9 {: Z
REV="$2"
5 v2 [% t- q% E- Csvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ ~( e" q, X' R9 ~svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
# y/ a! k$ d. ]" i  K
  1. $ m2 A' O7 \, ^
  2. #!/bin/sh
    . f- b5 d- i. n* i4 t$ l9 ~( R5 N
  3. export LAND="zh_CN.UTF-8"
    8 V8 P. q; r7 c8 c  [
  4. REPOS="$1". R7 {( S* }7 M9 G+ u
  5. REV="$2"; L" ?& l. D5 i7 S
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    - j* M  A+ r' R& Y( x/ h
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

* d% _; N1 O3 Z4 M, i$ x4 R
, [, h8 p8 S! L# T8 y  r7 E
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-4 12:59 , Processed in 0.052122 second(s), 18 queries .

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