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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介% Q3 L  @. M4 ^+ t1 u; o$ \
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略); i: W) V# p. A3 \8 \
1.准备工作
, y+ Z5 N& x6 S% m一台centos7 服务器 一台 客户端
4 {6 E. q4 ^2 E2 ?————————————————
0 f1 [7 j' @/ l0 ~* E: q1、验证是否安装了SVN, z6 f  X6 e7 n9 C2 J

0 L' u. J; G% F4 U4 B4 e命令: # rpm -qa subversion- D. ~" S* e- M: n

2 _% x$ D  ^6 I如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64) @4 d1 g# w- s% w& R% J1 m

: u3 o6 \6 \- h: s否则,空白
9 f- k3 j7 y! V# X: ^+ P
/ {1 K* ~# {' z: r' j- _" g2、安装SVN的命令) e  E# Y# b! `* B
# ~2 j1 A  O" J+ P, c
# yum -y install subversion
& |9 F* w' }& \2 e9 O0 m# t! n& b; {! J
/ N7 o% h2 J4 w) o5 e8 p接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& P) X, M7 _2 s/ x. M- Y/ K3 P4 W1 b创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
0 y2 v1 r, q* W- v! A* N$ L7 M4 s: Q2 C, R) _2 y) ~4 e4 z
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
0 E& _# K# y1 t2 y! t
0 y; o  N9 q5 ]: J; r5 @7 Rsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)9 R$ |+ b1 t0 L. @
$ ^4 P  v0 ~- P
- p: [8 @/ i5 C8 m0 W! h: X3 e
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格6 {3 j9 a4 z! {' P

* M% q. t) n: N6 M3 s) W0 [+ I7 s# password-db = passwd& q. i$ ~6 K1 c: a

! G1 G: g, h! A2 p1 V& Y8 ~# authz-db = authz
# y. k1 f: e' Y5 O2 T: K
5 ~' A' n6 N+ m0 ~" }( A- M5 U2 O3 T" t+ }
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ r$ c- D. D8 J) E4 ~
. p+ O# `: c( _0 u7 ^4 i0 c
登录名=密码
  x! {' L1 u, I" y2 ~4 K" R3 [( R2 m' t# H. e7 h/ a3 d/ R+ W" a
user=123456* E. v3 F' o# b) s" g3 k$ X
1 ~" r) z0 i; q" z: w  O' o
* O) y# r" \5 M4 ~4 E% E/ J4 |
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)) w/ P* U. ~9 Y/ T+ u9 q" `
) @: h3 R. s/ {# p7 \8 E7 S
# * = r% v/ [* x8 H* t5 V6 W5 k7 S
# M* r3 S0 l+ V8 w- G
[/]3 i. Z" @$ I# u4 T- Z# t" f

* }5 E: O* P, n! M3 ]- d0 d/ hroot=rw0 O: f6 \6 \7 f+ X/ m; L  v, @

4 C# ~; x% {* u% X这是用户的配置就完成了  n. n# s2 s" o
/ r& i$ ^/ {$ V
接下来我们就需要开启svn svnserve -d -r /home/svn/blog * U$ n4 H+ W; q9 n6 O
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
6 p. ~' \. W4 Y" N$ A" \, z; x% R2 P9 [# w$ u* [
使用此命令开启svn 根据自己设置的目录自行更改6 Q# e' [- |7 z7 n

# ]4 N" i% h3 W2 n! s7 C" G使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
) @' p  u" o- g8 \& N, B& x. P( B8 u
+ O: {4 b- o% R9 F1 m5 i3 c3 R1 t$ q- [9 O* h' f/ s
win下载svn工具
2 R  s; e( X, |, s' \' H3 H' |5 o0 f2 ?/ F. B/ C+ Y
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了; X, U8 q: l# w, s
2 ^) D# {5 }& u5 b2 l

' M* T4 c1 ], V/ d% `/ d重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 x4 T+ g6 C2 `1 A
输入你的svn地址 地址请根据自己的设置自行更改0 H9 Y+ {5 r1 P0 ~. o4 `+ s$ h9 n
0 r& A5 }, @8 F1 {
' B( d, W4 t: k# L  V* y- _8 x
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
. r% ~1 k; {$ Z+ n5 M8 p
( X$ q$ @  D. U$ ]9 V! x1 `* _) ?6 q9 \
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
5 r& i3 W, Q/ b% k
5 {9 F& x9 X) }3 i+ ~  j  y, [$ b- A) ~, ~5 N3 S
8 [# z. W2 Z& e( l" G3 w1 D2 `2 O
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存) l( N/ G% Z7 o

9 f  D+ T* z5 ]这时我们保存在版本库的代码就会被同步到网站根目录0 D' `( W5 R2 K* H$ h% R  m) @; b

% R4 N* I2 t( B: x/ ?1 H) H+ J  L& V9 s. l- L( K% a

* J% t3 i- c$ _$ ^$ q$ g8 x  w* J, [: H+ E6 U# z6 c# a, x7 I. s9 R6 S
3 F3 I* L! v! L' B% _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
) n; G2 V( v2 O" y0 qcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit# u/ l; ], P  [* X8 `
' @- M! x% G! }. _' O% e& M! r; q
  1. REPOS="$1"- c( {: r" c; \, H& v4 ?0 r$ ^; {
  2. REV="$2"
    : H' h; W/ D2 j7 ?5 t4 R/ m5 D
  3. TXN_NAME="$3"" C, ]% F! x5 y2 }- i- `9 f
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"7 l: p* [* @( M4 q$ N! ]) y0 e
  5. MESSAGE="$(svnlook log $REPOS)"
    ( ?0 [: k9 }- M1 c, X) P2 L; e- D' J
  6. SVN_PATH=/usr/bin/svn, B3 R4 d9 o! s0 y2 }+ f3 n6 }+ f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    3 ?6 W4 [- D9 D; A
  8. mkdir -p /var/log/svnlog
    9 m$ \* E# P- s" }' q' I  V1 M2 d" D
  9. touch /var/log/svnlog/ssyleo_update.log1 r9 p5 {* ^) h, P
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ( I# O) d2 t4 q1 G, v+ ]" r8 p
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    & V( r- a3 f* f: Y. m
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    6 q0 W7 C: p) e) n+ V
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    # n, L8 l8 I! ?$ e" l5 |$ }
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
% B+ x9 u. k; {, H9 r# ~

0 d" R" U9 j1 x5 o" t  l3 `7 R6 `
  1. #!/bin/sh6 g7 V) ?7 B6 k; {) D- Z
  2. #设定环境变量,如果没有设定可能会出现update报错  y+ Z1 u) \# R7 R2 }! X7 g' C
  3. export LANG=zh_CN.UTF-8$ p* c; ]: G& W6 Y- Y
  4. REPOS="$1"
    1 T' @5 u" D, \# \
  5. REV="$2"( ^: _6 u: @# L
  6. SVN_PATH=/usr/bin/svn; O- Y! _1 s- Z& l/ G+ w* J
  7. WEB_PATH=/web/project
    " }# n+ v9 Y8 r
  8. LOG_PATH=/tmp/svn_update.log
    . d  Y% ?$ a4 m3 n3 g. L3 r. z* I- [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache" w- q2 j8 {& H
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH' _6 o  \7 o2 i2 p" D  K
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH; W5 |; \, e: I
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    : i3 c8 x4 i4 O; i/ H8 ?* Z
  13. chown -R www:www $WEB_PATH
复制代码
  p3 h4 L  z0 P+ {' P2 t
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh# r2 e% S' L8 Z6 r4 Q( }
export LAND="zh_CN.UTF-8"7 N+ [/ t! M' Z6 d( E2 H0 O+ O
REPOS="$1"2 P, `+ Y( ~! s+ E1 O. z
REV="$2"  P. K1 n- f; q3 s5 ?
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 Q# [7 V* }4 L( E9 N  ]2 s1 o
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! f8 D7 a- E" Z" R

  1. ! c' y* Z. U9 ]5 X
  2. #!/bin/sh
    ' ^4 |  Q5 y3 l3 @! G4 P5 q
  3. export LAND="zh_CN.UTF-8"
    / v2 v  o: F) x" B& p1 w9 O. m* S
  4. REPOS="$1"
    * u4 c; X) W# e
  5. REV="$2"7 g. D. @3 a4 c9 Y2 ]9 s
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    % N2 M. g# u* R# L5 p
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

* c2 e* C/ {5 B+ `3 Y# G4 t+ t# L0 p; ]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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