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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
. H. t, j: u: U- sSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
/ m; F% {8 U! I1.准备工作" L+ A6 D. R. P1 Y) }
一台centos7 服务器 一台 客户端
2 C& z; @# K5 r- c————————————————% X# y. K) h* }+ h: I
1、验证是否安装了SVN8 w: l# s& @' R' Y) b. y

$ N8 `2 \" j) a5 |命令: # rpm -qa subversion% J9 l6 G+ r: R0 x: T$ U2 d0 n

, s2 K$ r% @1 Q! V8 `2 W( d" J% M" `如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64$ Z0 B1 ~" c9 {4 }

& X1 K/ f* R/ ~0 d& b5 U- s4 H否则,空白
! p. V  |& V2 y
, U4 |% t3 h2 B* X1 m  P2、安装SVN的命令
- w+ r+ m4 a" k. }
. ], H: `; n: I5 s' j0 O# yum -y install subversion
! n( U  Z8 n4 G3 k( P# z' M( p/ j  O/ f1 [$ w: O9 h
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
, {+ @: @* N( H创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了( X# `: y6 b6 T. [  N% \+ U! t

* v! q: B  B, U3 x然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
2 y" L& q& B8 a" y" U1 ~9 g% @* o2 @! E2 j% e+ u; w& X! z* V
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)% _  ^5 P" Z: n+ h' q! O

) K5 _2 E) [" J: N0 \; D/ o
/ m- d1 S. N' h) q7 J9 H首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格: M# d0 @4 Q. m# S

7 c) |% i: R- ^3 L% v: z# password-db = passwd
! O' k. Z  b# ~1 |6 Q/ D' y" N
& i  y4 X9 e' W  v! A7 V# authz-db = authz( z5 ?: f6 c! t  L
" _* @; |' k; x0 n3 o

4 m) @1 G5 d5 ~% }0 p* [然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效5 n9 ?: `/ I9 X3 B$ f. |

$ A, q( R6 O' l+ Z登录名=密码
5 T- b& H' P4 K2 `' `* J- q2 |  A# ]1 B
user=123456
* x3 Q: i, e0 g, n' c/ [! A- k* l3 b8 j6 E5 S
0 {7 E. @; G' W& }# l8 l" Z5 \$ o" @! ~
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限); x' a6 l" F% \/ M$ i- U1 z# F

) k; x! Y- ], U/ `3 O1 ^2 y$ s# * = r3 }6 I  w6 C/ d5 Z; A) u8 c0 e, |" y
4 S; A/ m8 s( N
[/]
4 \" B& X6 @7 r) o4 f) [9 R2 a/ Q
* s9 w5 g* L& r' M, ^) kroot=rw
# T& @, a$ @9 a2 q, a4 _% G) X* p; b; v' z
这是用户的配置就完成了
/ [, l8 I- D; v7 k6 y
4 ?, A1 Z0 N$ P9 \; ~# J5 h接下来我们就需要开启svn svnserve -d -r /home/svn/blog 1 E' S$ \) d! @/ L. s( |
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo: I6 U' p' l! e* s5 d; Z; {1 W7 w
- ?$ D* y1 [. X& v! {# T
使用此命令开启svn 根据自己设置的目录自行更改
9 Y: T4 i! `+ c$ Z) ^' _" F/ J$ c% Q5 n
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
- N) c! X2 J& B8 ?# @1 S
3 G0 f) L! b5 r( k: A+ {" u' r( X$ |% D
win下载svn工具9 t, H8 o! \8 j- H  v

7 W! k; @, q( G) h接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了4 F5 I" A* w6 ?4 s
5 c5 K! K6 c7 P# F( Z* N# R
- r; h5 f% @9 T& }1 \+ {0 ~$ O
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
7 j+ g8 j6 j: ?2 u- Z% [输入你的svn地址 地址请根据自己的设置自行更改
2 G7 R, U3 W* F9 i4 ^8 d  v2 G" k+ A1 v4 O7 H. R7 M" R
* K# J" M  ^) v9 b( J: _2 \3 ]/ z
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了' K+ M9 V7 \. k: d
: c1 e1 D& h" O% S- s
8 W) P7 J/ ?& }3 ]/ Q) v
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)% V  u1 Z2 v3 S: C
& j3 p1 I% j& e# r  p
+ D7 N! o5 \1 X
5 Q% z5 X# v6 o! r/ S0 T' d
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
1 n& M8 l& q" N; i8 ?% y# ?6 B' m$ U, L% g! R! \4 U6 ~/ y/ I
这时我们保存在版本库的代码就会被同步到网站根目录& Z( ^0 i, L5 j& m8 N
, a% X$ f: E; c+ h5 N, q% {! |0 d$ _

- p5 s* P4 E" _' C% N; F5 P; N4 }* I8 {3 ?. z

0 I4 e! y, T+ j/ a- m
& f! T5 H8 ~* p1 L* e4 E7 t- K# i7 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
( w0 o7 B: \* K! t) bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
" l" K5 ~; {  D9 H- r2 f
) m/ Q) q1 `' k* Z2 U
  1. REPOS="$1"
    1 y+ y: O& C3 _% |% [
  2. REV="$2"
    1 v4 Q. ?- K+ M) Z* D7 S# v
  3. TXN_NAME="$3"
    ' E% c" N# A! N
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"3 t; I- C/ Q, [
  5. MESSAGE="$(svnlook log $REPOS)"
    + B/ M1 N5 q4 A6 ~
  6. SVN_PATH=/usr/bin/svn
    / J) @, h# {1 H# X' N
  7. WEB_PATH=/usr/share/nginx/html/ssyleo2 ?& ]3 t6 }+ G8 n9 `) [4 D* e
  8. mkdir -p /var/log/svnlog
    & L- y8 y- Y. X! ~
  9. touch /var/log/svnlog/ssyleo_update.log
    * [" @) f8 v7 c& C$ [2 F2 g8 Q$ h
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    $ C* J" u" T; V
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ; b7 b8 u2 p  Y
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 o- w/ v, c9 @3 p6 z8 ~8 |6 }) n
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH& l$ P5 Z( H% R, ]- K
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

% \( y6 r: H! t, A: e3 a& r
* ?; g# ~1 H6 G. M
  1. #!/bin/sh
    . V9 ]+ v- l. |( V/ I
  2. #设定环境变量,如果没有设定可能会出现update报错% W* S2 Y; |2 Z+ n: j
  3. export LANG=zh_CN.UTF-8/ C% c: |6 ?+ n4 l! n2 u5 V
  4. REPOS="$1", [" b$ _: }& n( [, T) ?6 B: C2 p
  5. REV="$2"8 b! A  m9 Y1 d' @" \+ Q% V1 z
  6. SVN_PATH=/usr/bin/svn
    7 d4 n; u' B4 `* ]! o  g6 M& ?& o
  7. WEB_PATH=/web/project6 {; K' @, ~$ c- M
  8. LOG_PATH=/tmp/svn_update.log; i/ i# f: g, B. K( r$ {, m
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ( @5 r! u4 z" y* M  ]" M* _
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    $ F, T* G# d) X5 {8 T) c! I
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH; ]5 s  R& T, Z! x
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH; j- m, x! @* _7 }
  13. chown -R www:www $WEB_PATH
复制代码
0 k0 f+ u4 c% Q/ ]5 `6 c8 W
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
- q5 b. U" C% `9 ]/ G  n* n3 L" lexport LAND="zh_CN.UTF-8"
% X6 ?% Q6 r; O: V$ RREPOS="$1"
" o& ?! }1 V: ^9 kREV="$2") k9 G1 F' s- V6 H& v
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# q$ L$ d4 @) N, h! F9 V
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( \8 G4 j3 x  f( ^6 K& R$ K& @
  1. 0 M& }7 ?0 G6 I6 s2 t+ b5 z
  2. #!/bin/sh
    ) v  M* J: s7 |! U) Q/ O8 u# G
  3. export LAND="zh_CN.UTF-8"
    , \  m  G- A6 G
  4. REPOS="$1"
    2 y3 X% C6 N) E' Z9 r3 T& F- F9 f
  5. REV="$2"" z$ K% F) J5 N3 a* p' I
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ' U& Z( p7 X0 A1 T4 e, A
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

* {' P+ Z8 g! L# W7 x! L' P+ |" |: d( F. U( |
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-5 21:03 , Processed in 0.108945 second(s), 18 queries .

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