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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
' R$ _$ `5 R# v& B$ \SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
% a' w- ~  N# L' A, q9 W1.准备工作5 G9 r* j0 O3 @/ s% ?; z
一台centos7 服务器 一台 客户端
9 |9 z* [/ ^3 W0 w5 l; m5 c————————————————0 z8 V. s* h! t( e+ b
1、验证是否安装了SVN
4 B, O5 S$ x& Q/ }, O, e% N# P2 p! U% \* L+ N
命令: # rpm -qa subversion" U6 B3 x7 l" U- P* n6 }

+ f2 p$ `0 m' f  P. B; N( `如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64; k6 m  z3 t! v

6 f/ n7 p- W" p# W* Z/ W4 x0 B) h否则,空白6 i2 n( I9 S  f! L3 ^; y6 K" c
3 W/ h5 L+ D9 D1 W
2、安装SVN的命令
! D  z7 d* ]& ]7 R* `$ ?' \( P8 J& d7 ?
# yum -y install subversion
! _$ x$ G  F! `! S3 G/ c6 `8 ?. }7 Q, ^" q1 n4 X- b# A
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
3 p5 ?( _3 I& l创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了! F6 u3 I9 A1 G- q3 F
! Q3 y3 S- n/ ^! Z* ?$ q! S- _5 z7 o
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置' R# @- L: Q1 V* |* \' E
* a  G/ Q2 Z2 Y
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
0 l, Q8 [! Q4 |9 R- x: a* H- {% ]: ]9 e7 [3 ?

9 q! M' I4 Q9 N! }6 q首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格6 i) m! R5 t2 W/ M9 E+ z2 P
& C' z, ~8 `  m$ F" j
# password-db = passwd
3 ^$ g: ^1 \1 I/ Q. y
$ Z+ |* X6 Z, @3 E& \9 m# authz-db = authz; }, `3 u8 e# M9 ~! ^5 i& J

4 k& i" p% X  Y: e4 C
$ l! h% Y* ~9 P( C然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ E. l0 l( Q; p1 Q. M
/ V% U  F3 t! G1 F, R: ?; }# z
登录名=密码5 |, T5 J2 D( }7 c' q$ M8 a3 K4 ~1 h

+ t5 v1 A% t/ G  ?% Zuser=123456
. ~* }& j! j0 F( u6 u6 Z5 ~& \, Y
8 M  `% g/ ~' a
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
+ B2 v" I# w9 c. @! H9 c' ?& b
# * = r
/ k" h0 _; M& H; l9 ^* {/ H# S1 m  k
[/]
4 c" l7 a# e' b( N+ |4 a; p9 F& O3 D
root=rw
! y( l1 j7 c* r' h
; E8 M7 V+ p5 ]* O" B0 \2 g# e这是用户的配置就完成了" l! `/ [/ G: P" P9 B
- _, l5 X. k+ E9 A
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
; `& |  a; d5 {+ Vsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
# W, Q1 O% m+ X; b- L% O) o% ^$ `& g1 b; g* D, R; h
使用此命令开启svn 根据自己设置的目录自行更改
) h; v* G( i' J! c5 |0 U
% u1 ]3 L- \+ b' q8 b: i使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' T7 C" B+ t' y5 D! f- v2 ~
  P3 T' f2 C' R. K' }6 [7 t
$ [: I6 \: a6 q4 B% t
win下载svn工具
# y& _7 U: o7 h0 |: ]
. }" U5 ]  _" Z' G1 U接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了4 w7 M( U# u3 i" Q' W2 o$ X
: ~+ M' R6 @9 V+ a# k* Q  y
$ Z* ^5 p% J9 J, J
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码0 j& x) w) X& ^+ z: ~
输入你的svn地址 地址请根据自己的设置自行更改
4 p8 w! Q1 \" G2 o( j+ H/ Y4 O# q8 V) a1 Z0 ~

' g- f/ Y! ?8 s然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
6 c% A' g- s) P* F8 Z% x! ]' \- G5 l
! I( H! a7 ]! n4 v
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)1 S5 p% O0 W0 h( t

8 Y6 `9 Z  M9 N# j2 e& p. B  h% m& o! z. B
0 B( y9 d+ Y4 G6 n) L; D6 V3 f
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存1 K# y6 E& i6 W

2 ]' }% y3 k8 \8 K0 p这时我们保存在版本库的代码就会被同步到网站根目录$ z: L+ J% N/ A4 T

6 Q3 j9 N0 w/ }. X8 m
5 m6 f- h6 ]& ]: e" B4 g7 N- ]7 N: o* X# v
; Q& _; A+ ~( s, Z

& Q7 h8 _( R" f4 n4 t+ A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录; C* f8 N* v! ]( P1 O. D& H0 w0 W" }# I
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit8 P0 C& K6 {" T, u: l1 V9 c0 z
5 R* x# [! Z7 o) a
  1. REPOS="$1"0 p: i) l6 T, O* h% i
  2. REV="$2"$ c, ]- j3 V5 V8 ^
  3. TXN_NAME="$3"
    4 z6 j+ p8 D0 a$ `  @+ ?
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    : ~; d1 V. W3 J
  5. MESSAGE="$(svnlook log $REPOS)"
    9 h3 E9 z% h. l- R& ]
  6. SVN_PATH=/usr/bin/svn
    5 y1 ?% H0 [- p$ ]
  7. WEB_PATH=/usr/share/nginx/html/ssyleo9 C1 \5 B+ [( h9 A3 E! ]2 k$ _6 i
  8. mkdir -p /var/log/svnlog
    4 `, B/ @1 V2 v" z- u
  9. touch /var/log/svnlog/ssyleo_update.log
    8 V9 t# E! c; \1 r" R+ F# W2 \8 x
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log+ \, x' s6 u! K2 n4 f( v/ P# F
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    7 g8 Q2 _. g- {5 e5 h8 w1 V
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    7 V  @" z* o) L$ o9 s( p7 Z# p4 b% h
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH0 Q3 {- ]7 q6 b3 I8 Z4 J1 G+ b, R
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
3 V1 o- i4 C0 b0 r/ t% n- {
5 E9 b& z/ c7 c" `) B
  1. #!/bin/sh! V6 {9 o. ^- K
  2. #设定环境变量,如果没有设定可能会出现update报错
    & `) _3 N* G# n
  3. export LANG=zh_CN.UTF-8; O5 u" n+ g, s, @, x
  4. REPOS="$1". n6 L+ r" x9 |1 B9 u
  5. REV="$2"
    . Y* J; y' L+ O! f# I
  6. SVN_PATH=/usr/bin/svn
    9 I! F+ h" q. f
  7. WEB_PATH=/web/project1 h6 R& b" B- i7 ^" j
  8. LOG_PATH=/tmp/svn_update.log
    % v  u4 u( F3 j. G) T, t! h
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    $ C/ a/ ?* t' `8 B/ u, D6 I9 P+ E
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    # d/ u# t9 ]; p$ c- d
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH; Y7 x1 C/ F. }* m3 N) `: k
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    1 v# w" \1 X: j. R7 N
  13. chown -R www:www $WEB_PATH
复制代码

9 v! F( W# k$ b' D- p4 d5 W- @
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
( W3 L3 K+ d, H/ l. A- Cexport LAND="zh_CN.UTF-8"4 X4 @+ ^9 O4 j# E# ]0 L% [
REPOS="$1"6 k+ X+ }; x. p/ s. A1 C9 H: w( \1 o. n
REV="$2"
2 ]: q: t: R8 o, Q4 ?, ]- tsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache2 \! J6 e3 z, b. F9 ^+ _, h. B# H* y
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
  o" P; Y, M$ h: C' g

  1. 7 S$ c5 H5 @/ Q, G3 p
  2. #!/bin/sh
    + r5 g5 B' H9 G1 N8 A! C
  3. export LAND="zh_CN.UTF-8"
    $ [& N# z2 f/ p9 f+ W
  4. REPOS="$1"
    + |9 U5 Q: O. J1 r' L7 l
  5. REV="$2"
    ! w! r6 U5 H) A9 i& x. c& \! n
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    # y% q% R& a1 R* ~: G
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

0 Z) x/ v& G+ c$ `3 N
- s8 m, |% F" Z% T  T- m
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-22 04:09 , Processed in 0.056565 second(s), 18 queries .

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