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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介$ z% m, P' u$ T
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
1 Z. X/ L2 e2 e. v4 y1.准备工作1 @3 J* J" |/ o  F
一台centos7 服务器 一台 客户端
' W2 N9 c7 a, i1 T. ]————————————————
! _' h" ]7 {9 Z8 {4 d# J& K# ~2 Y1、验证是否安装了SVN+ A0 Z' f- q4 E

0 M- W% h% B, ?3 u命令: # rpm -qa subversion# Y/ ], `/ |2 `6 r# u
) k; _( c9 o3 K) B0 |
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
; G) A4 f( i3 O. c7 I4 a" o7 z( m
4 b2 k) ~5 O, a/ i0 b否则,空白$ K( o: M7 v- x+ k4 d7 K

, w8 Z2 r* E" L1 Y) a2、安装SVN的命令
  |) w/ m, t! W/ x& |  d# \
0 b! w: E4 j5 h  C1 `3 X# yum -y install subversion* A0 h) Z- j' Z% ~' w
! q/ Q# N' [' W  [, p' s
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
) G7 a1 K* p8 d4 i: ^2 b3 k5 O: F创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了9 Q0 I2 v/ q& d& R
8 c4 N# Y# @6 ^" p+ L
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置8 {+ z* M5 [! ^, }' t! r# |
, p' a" J; O, ?
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
" h5 v7 i% {8 [
4 X8 T! p& u2 N( A" Z9 V% V; O+ ^# M: U$ l2 t
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
. H1 p& L7 _& e4 P* x8 ^
( t& I8 v3 ]3 T7 |# password-db = passwd/ M8 g8 L$ H" V: o/ |# O
6 \! z/ y$ X1 N; D7 t  T  c4 M
# authz-db = authz
# c0 H  |% ~7 v- l( `" e% L" ~1 j4 F# M4 I4 `, Q7 a

3 t5 F! F, ~- A8 }然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效5 x8 l' [& I+ f& z8 W
9 C  r) ^) W. {% r2 |% K
登录名=密码
% k. R" M7 o, E( i5 F5 L; @( \4 m# |8 f2 j' Y$ C1 b2 B/ V/ f
user=123456
8 }. |3 W/ \7 h5 a0 ?; _! v2 C) X2 k6 ^
' E3 i" _7 ^5 L9 h% ^& q4 ]; R' m
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
! x: ?9 c& j4 h( b6 T
0 C& ^" k4 O; g. p- L  j# * = r0 n7 f/ R! E; `9 T
7 w) V) _4 D; D
[/]4 e3 m* D; _6 s! k) e, P$ K

7 d( {$ O$ P) iroot=rw9 c& W% O1 C2 L" _2 a1 W
; W8 U) D' A+ o) ^
这是用户的配置就完成了4 j1 J- [1 U$ q, v# n0 X* b
9 c; Y/ }1 h( v: N6 ^, x/ y, B
接下来我们就需要开启svn svnserve -d -r /home/svn/blog , J  ]7 L9 }% I. ~6 I8 T
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
: ~7 y, F9 x  J- H7 L7 e- h* f: p6 n2 N2 u" I! L6 n
使用此命令开启svn 根据自己设置的目录自行更改
1 p# g6 T0 x9 }2 c! u3 O8 T' L+ }9 x5 I$ b. ^
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
# s4 q- |# y; s- W, ?1 ~* V9 W- ]3 Q) A8 Z6 ]

  t2 a* ^) s, Awin下载svn工具
  ?% F- ]: _# f( n9 j4 {
& c* |7 p1 T; K+ H: G( C+ H接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了. b1 F& U$ A: a
+ O$ O5 _* @8 `  \  L! ~
7 l3 Y" c& y" Z4 g; I
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
3 I9 g% n8 i/ a输入你的svn地址 地址请根据自己的设置自行更改& |3 b3 ?3 R' f/ C

; T- a& U9 t6 j2 S; V4 a, k; E8 w! A! n* C7 `
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
0 c2 _: a; ^: l/ c
0 D) I  K6 j5 n0 `* M
  v) l% O/ D, s5 K7 L! S1 C- w( C" z(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
0 }5 a$ O  i3 @4 w- \* ~, x' N/ i( V

, ]& Q0 _6 \% v8 M9 S8 f) d4 B* f2 L4 l9 k6 n5 K
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存2 ~: Z6 X1 L. M  a5 k9 T6 m

  {: y: N3 j0 c: n这时我们保存在版本库的代码就会被同步到网站根目录6 h% w1 F! |/ h$ C/ F1 i7 z& c
3 L8 T7 ?# u. h
/ u+ a9 k6 e, b; S) G, N
) E! ?: ~4 F* z

+ y) J# G+ l5 L, W1 Q) K! d5 q0 r* q# l$ t! y1 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
2 J. [# L% s: G# h2 [  P: Zcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit7 P$ j: l: r% ^) v, w' d. u

( G& P7 e5 u, l9 j9 U
  1. REPOS="$1"
    + Z: j( O, S" ]( ~' N
  2. REV="$2"4 \+ O( j+ b/ l: j1 D9 B6 B7 s
  3. TXN_NAME="$3"$ O! Z9 F% M% D
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") v6 W7 q1 U# w: Z: y
  5. MESSAGE="$(svnlook log $REPOS)"
    # v" W7 Q( P. {$ l- ?  `
  6. SVN_PATH=/usr/bin/svn" s6 Q: _1 B! V) P% ~9 Q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo. [: m7 }2 b6 r- m- G8 v! {1 G
  8. mkdir -p /var/log/svnlog0 ]; `$ F" Q  \% l' F( w2 q8 K  H
  9. touch /var/log/svnlog/ssyleo_update.log
    1 Q* U( q4 f- [! o( \* a* E/ u
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    - w  v, r8 X" d  ~6 |
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    + `; ?- `; E/ ^2 k( T5 i
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  K1 ]- f3 Y8 o+ j- f
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH- W* m8 v' Y& t& ]' L
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
1 O3 ^0 b: V8 L% p6 i9 x

. l. c  q$ _* \; Y) a+ [
  1. #!/bin/sh7 v; _0 m1 `: L  s/ |
  2. #设定环境变量,如果没有设定可能会出现update报错+ [! g$ k+ b* }9 w( b
  3. export LANG=zh_CN.UTF-8
    ' C$ ~/ \2 m; ^9 L- Y# M
  4. REPOS="$1"( q- F, X+ Z& ~, ?
  5. REV="$2"
    4 n: J/ {7 }; a6 f1 O3 D; i9 c
  6. SVN_PATH=/usr/bin/svn: p; O, w+ {) F" D/ A0 B
  7. WEB_PATH=/web/project* ~; t) W& M/ G/ w; f/ {0 T
  8. LOG_PATH=/tmp/svn_update.log* f. O. p, N2 i) X
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache" Q9 K& U; v! \& o, z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    - O% U8 |/ r  l1 N
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    " u5 J- `( h5 E; }7 {
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ; u: v/ E2 k' H: r0 ], Q
  13. chown -R www:www $WEB_PATH
复制代码
& R8 F4 \1 S; w0 f  i# r# I
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh2 t* S5 k# x8 |8 F" b% _
export LAND="zh_CN.UTF-8"; M0 t+ i  i$ T  h! b" q
REPOS="$1". b: }% i/ u. Z' @' E& t7 R7 U6 B
REV="$2"
+ Z7 V8 Q# E3 f" [5 psvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. m9 F* Q: Y0 N0 c! d/ z# O
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
: g( K, V# m* p
  1. 8 ~% A' v! d6 o/ _" h) v# d: X' S
  2. #!/bin/sh
    ! D, U. R8 g7 o$ s6 B; I
  3. export LAND="zh_CN.UTF-8"
    . O4 j" F; m" L3 x' q* R: C
  4. REPOS="$1"5 k$ z5 x5 P) C8 x9 ]
  5. REV="$2"
    / F# W+ }6 k0 {; {
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! {) O) r- _+ K, t1 X
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
1 O' l: w' K# W! M

  F/ ~3 c; v5 H
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 19:05 , Processed in 0.080010 second(s), 18 queries .

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