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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
: j: f9 D( [9 s% V% dSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)$ b# S. `2 P! U& R
1.准备工作
$ f7 K6 v; g9 g0 b6 M一台centos7 服务器 一台 客户端. ?; a1 d' |& y8 o# k
————————————————: T! s3 C. M! ^; p' S" _
1、验证是否安装了SVN
5 X" n- ?( q: F- K
( O& V; J: Q1 M, ~  \- z! v命令: # rpm -qa subversion
( M' ~/ g1 b* A) J
* @! Q6 Y% C" L1 {如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
6 I3 {- Q; e) E) l
' ?+ _0 ?& W/ Y2 H( U( z7 J否则,空白
; ]1 [( k% a5 \& W- S) g" p8 z! V$ k! V8 W  Q- L
2、安装SVN的命令2 j0 E( B5 }- M; v, m; z* J
1 i, T2 t  [1 L9 P. _$ L# H# v- ^
# yum -y install subversion- \, d! a! J) C" K& z( H, T

: k+ o+ l; E2 k, E# c0 o2 I0 o接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& C6 i4 O, _( E创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了2 o% X: F% l+ q8 }5 t& e9 d
* c* \0 n3 ~) C  b' M" z
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
& D' ]- {: S, N6 V
, P' m0 B1 g1 ^svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
! Y% s4 w& N2 j4 w
2 k8 u, P7 D" U
8 m9 A( s6 q4 \6 X首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格7 n! G) g9 ~" c# [) ~6 [% U

9 A! a. e8 m0 i; ?; U, ]! a# password-db = passwd
* Q9 S. S% i* W/ f2 g% ?; t/ E
2 f, D- d8 ?( P+ [2 n# authz-db = authz; D! H$ `' ~6 Q. i0 `
* G7 @" E. @. i# O0 d* U

1 i  g5 t2 q7 d# F, w0 s- |% b然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
* ?  v& T/ k- N$ p. H: l( x) [) q  B0 N
登录名=密码
1 a8 r* u' X6 B+ C0 l
. B7 @2 i, L1 A- huser=123456. h( f/ ]+ B) _* r' T& o

( U' ]) v& _; {. Q* i% a' Y9 B1 |
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
% J+ n$ G3 y& M) C. f7 c+ l. M; l
7 u1 A( F" K, _# v# * = r
6 T" E7 S6 ]. T  z
7 J$ R# f4 u- x) Z. c[/]
7 S" p+ {! D+ H) X" u" |7 E! P6 l7 e: |: u. H
root=rw
- ^8 Q$ {$ G  v' k! o. R0 Z! V* @# i& d- ?8 T3 h; B, D5 [
这是用户的配置就完成了
' ]7 T/ d% \: K. D- U+ j! i0 T! j( T- C
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
3 A4 P3 p0 p8 |8 q* N! U8 `0 B! h* _svnserve -d --listen-prot 端口 -r /data/svn/ssyleo7 f5 m; h# [5 D4 q/ p+ P. p
5 _8 @% l) z1 ?
使用此命令开启svn 根据自己设置的目录自行更改
2 c. t% R: {  D  ?" ^) x$ l" _0 A7 C+ [7 ~+ E3 H- e
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
. Y4 V9 I! H: e* O2 x# C6 ~
/ V$ {. i6 a5 X8 J3 {" u7 z+ z+ x
; R/ H3 h, s, owin下载svn工具% r- ]/ _! a8 B2 p
" f2 O# w: q1 j) ]8 `2 k
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
0 c. F8 ?2 O; A+ ~6 K0 z1 b
9 t) ^% h/ I2 _9 k, a. I1 ?* t! s& r6 ?, o2 o- L
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
+ I0 ^1 Z0 ]9 c8 b输入你的svn地址 地址请根据自己的设置自行更改
8 b2 W8 l, @& T) v2 S1 W4 G6 S8 G) `0 f

3 M) m) Q% t2 Z' q! ]/ M; |然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
/ }' c1 r8 i4 f% n5 P1 D
: d& u+ T3 k5 k2 f/ D3 Y) }' [- W
- q% l& j( i( k. c  y& E0 s(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)7 g% J+ Y* }7 L  n, x' Z. [

0 s0 [( v0 o; P6 _
! W" A/ o3 Z$ w1 q0 [; S  Y7 {6 ]: B. G  q1 w0 n
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
: D% q( Y$ R4 ~2 n5 F
6 }: O+ Y4 z/ u8 m这时我们保存在版本库的代码就会被同步到网站根目录" n2 Z4 w. v( Q7 y, x/ B
3 F! ?5 ?9 B7 A6 ~0 Y1 b
/ U$ n3 r6 m3 `1 o% B3 }

5 q: L& D4 S3 ~/ l/ x! X2 b7 g8 \& ]* i5 k# I( Z! P
4 @! U) z2 d( _. W0 b6 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
2 W/ y- D1 v, U  W" Kcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
+ }/ h4 Y/ ]9 l- q2 Y  E) [" o1 ]$ P- s9 H3 \
  1. REPOS="$1"
    , p) Y; O" t. y! q' l
  2. REV="$2"
    1 O# r" U  y5 u, ^  j- N
  3. TXN_NAME="$3"3 s/ D" @  j2 g1 Z) U' X2 b. t7 F& ?
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"& ~5 J" n& e7 I
  5. MESSAGE="$(svnlook log $REPOS)", J0 U" D0 G8 E% S# z# g( D- a
  6. SVN_PATH=/usr/bin/svn
    & p+ w5 e; _$ f4 a
  7. WEB_PATH=/usr/share/nginx/html/ssyleo. [1 R2 E3 ~* c" Z/ ?) n, N$ a
  8. mkdir -p /var/log/svnlog
    : Y8 C4 d! B/ o4 O* Z
  9. touch /var/log/svnlog/ssyleo_update.log
    ; t' X* @- x$ |7 r( H- `
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log5 z: i- {0 o, E& j: D
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH: \+ [/ C9 B! T7 L
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  h; o1 h. A" O% B! _
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH9 [+ }, A& x4 P2 J
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

' z0 _& v5 i- j- T
* O8 u% q/ k6 o4 \, E
  1. #!/bin/sh3 M+ p- l, R, \: U8 L" a
  2. #设定环境变量,如果没有设定可能会出现update报错( r  d- U" ]! e7 V, m
  3. export LANG=zh_CN.UTF-8
    + C4 E2 s7 [( ^) H) Z2 R2 H
  4. REPOS="$1"# G8 n( l+ v% Z2 ]! G# ]4 q
  5. REV="$2"" W# P9 v4 W3 R1 k/ E
  6. SVN_PATH=/usr/bin/svn5 w/ p7 P0 o* N, w
  7. WEB_PATH=/web/project
    6 |1 j8 b! y- d( F. d& Q
  8. LOG_PATH=/tmp/svn_update.log
    * A4 q* x8 u4 u, M5 u
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    $ j  O: Y% i8 J: a' l5 ]& `- n! V
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    2 {+ X. M  a2 _* r; Q
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    * Z* }6 C. L/ d5 D4 d5 i4 C
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, t# i- G; l- v
  13. chown -R www:www $WEB_PATH
复制代码

5 z# r* h% ~; S* F
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh3 \  w3 _9 z. _% d4 J
export LAND="zh_CN.UTF-8") {- A% I' {; `' x! W2 f3 |, O; j
REPOS="$1"7 `4 @  ?- j% n
REV="$2"
# j; g4 R. ~4 T1 ^/ w7 _8 O' Qsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache' ~9 K& Q& R3 f1 V9 ^
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% Q5 X9 F" [' w" s5 Q

  1. $ W! i+ R1 t& \' S
  2. #!/bin/sh" E& }( O' v' R+ U& ~2 z6 L8 |* I+ c
  3. export LAND="zh_CN.UTF-8"
    / w' u5 W4 X( s; l4 P& X* J( j
  4. REPOS="$1"0 i* y9 ~- _* v5 v; S: {% X/ A3 J) i* ^
  5. REV="$2"7 |2 @0 J$ U# c' e' n
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) ?5 @- f8 i* t' I. G# ~% N0 M" S" s
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ E  A/ J, o" ~

2 Y* V$ Y+ Z! c; n! d2 A
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:25 , Processed in 0.056235 second(s), 18 queries .

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