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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
2 P; a0 P+ M- \7 aSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
6 K6 Z! D2 r1 }# F$ O4 d  B. N- A1.准备工作: ^) G6 Z/ _1 b5 |
一台centos7 服务器 一台 客户端
$ q4 u5 ^- U' E' p————————————————
& G6 h. y( Q, \0 B1、验证是否安装了SVN
' z- d' q( N2 x
8 C/ u/ o" I3 V& y) i3 k命令: # rpm -qa subversion: N2 U" o  z% ~( R  W' ?1 M1 s

9 ~1 L- s% Q( }' \. ?, M如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
. X8 {) E" Y5 J& t5 q& A0 _) q3 x5 L
否则,空白- F8 X- D" ~" N' S, L. H" z
9 z3 ]  G6 @6 r/ `% O8 R. p! _3 p; [
2、安装SVN的命令
3 m) e9 t5 q" d! v1 K- {9 E4 S' D; w9 }, e) O& e
# yum -y install subversion
6 k; D) U7 X# E+ E& M$ R; \
- X; Q( L. a: G- f5 b接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
* a3 l5 O* C, l' y# C# w创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
3 B* @8 E# k+ W2 S. X
0 k7 Z+ r" `2 ^2 d' B, ^然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置! H+ ]9 v, M, t0 {0 L" e% j: i; ~
; _9 r5 `! C0 e; B  V/ X2 h& G
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
: I6 O, @5 }6 G: \& z/ w3 [4 Q6 @. E7 X' ~. _- m

3 T6 e. Y) r% j/ ^/ c6 P1 ?8 j! P首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格' Q4 U4 G; q* e4 C+ ~

+ N6 E: I- K1 i" f# password-db = passwd2 e. a3 A( V( ]/ w+ r/ a9 V/ M+ K

( G9 o  K# j, ^. T7 ]# m* ^2 }. V3 P# authz-db = authz
# @% W6 I! Q$ Q; x: A. k" }+ ^6 X* }/ V

! }9 Z! k7 ^$ H( C) V然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ Q; ]! b7 s( t' ]1 o' X
* o+ E+ P+ X; d. \# b/ a& O+ C" Z( x
登录名=密码: n8 i! }5 x7 c! S
1 F1 {5 o0 Z$ C- a7 {; P0 M' `
user=123456, C$ q$ J, ]! `/ o

6 r% z: r+ y- Q' v4 v4 ^
8 I1 }9 [+ [+ x% J0 v9 s9 g. F: n! @最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
, V# j1 v* _6 \& a4 l' Z% x+ c
, B" G( y4 Q; |3 P8 k# * = r/ f2 a2 I, a$ ?* p

$ x; S5 t, h1 s# ^7 G; q& V' H[/]
2 {- P) d" p& o# v# F( v7 P
8 L' E- J+ G2 m9 X: Eroot=rw
# @0 W* v4 {' L/ R
7 h5 i4 J" e5 u, O, Y1 S% t这是用户的配置就完成了
5 k6 ?/ {) ^$ @8 U) O' O
4 L3 Z  f' u5 c' n+ m5 q接下来我们就需要开启svn svnserve -d -r /home/svn/blog
) k2 G  V- d  C1 T" U1 J1 F$ ysvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
' z" s, n. C  Z9 f( V4 r2 {, M0 ~/ m4 a( E* W4 W, n3 H' x* c9 I4 A
使用此命令开启svn 根据自己设置的目录自行更改
3 P' o3 R) g. N/ x7 P" D% |' Z- H7 Y& e7 n
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
8 ]: S) i7 o9 g% ?( q$ R% b' L* c& I" f" c; _: U$ f7 W0 S

3 `# P8 B8 }- n; `win下载svn工具
5 ?" S. Q+ }; Q. A+ K' o1 \& ?7 s
# i! w. G6 S$ ?- o1 T接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
: H: J- `6 v! H5 n& c( z! [* P
; q" m: W- N* ^" [6 ]6 z5 h' Y/ m- m; C
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
6 A3 \; ]. w- Q. O' S0 E; ?6 v输入你的svn地址 地址请根据自己的设置自行更改0 l1 a$ u2 x1 m+ b% v2 Z" n
$ s  U% |- F" C* D" B# v* Q

3 b: v( ]) y5 K  T9 p+ ?+ i然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
+ E$ A: l( g: j; g6 R* S
9 E: H+ I# Y2 Y5 A: o$ K' n$ M6 `; }3 V( I: Z
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
2 j  D! v0 W# t
) K2 p% `" Y  ~8 T; N0 ]! c9 Z# y5 p3 l0 C0 Y3 `; R& C
( O5 l; P: W2 w' K+ F
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存6 n' w$ T% i4 i/ G; f( _
! n5 I' i2 p( p4 W1 `) ]2 f
这时我们保存在版本库的代码就会被同步到网站根目录5 g6 p- w' [0 W8 @* M2 L

; R- W5 O! q! |% q6 }
3 L! F2 x8 [& c7 r  {, V- ^8 W; a
4 J; g: N: G# l# ?! i

7 |" [, p5 m- I* `& L  o  f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录* p% c* `, X( L/ Q1 D$ r& Z2 P
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
" \0 ^3 O. ?& ?4 z6 Q0 {# h3 ^$ c
! F6 G/ m4 S0 I8 F7 u4 `! L
  1. REPOS="$1"* v9 E& R7 U+ W/ a  E  u! O1 J
  2. REV="$2"
    6 w! D6 M- V5 e! @. |- K: f
  3. TXN_NAME="$3"6 ~% R4 ^. d" p! m6 n( n" f( {& W" y
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    . u, d; H3 \" S3 c$ p+ F( c0 a  U
  5. MESSAGE="$(svnlook log $REPOS)"
    6 C' o. B- c6 D, u# \
  6. SVN_PATH=/usr/bin/svn6 }" M7 y' F: W, R
  7. WEB_PATH=/usr/share/nginx/html/ssyleo9 E  Y* a' J. R+ L
  8. mkdir -p /var/log/svnlog
    0 m( F( f" i* q3 C
  9. touch /var/log/svnlog/ssyleo_update.log! X3 r3 G  O* b& ~; w6 Q! [( X1 R9 L0 \
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    3 I; b0 z; Q# C* T0 O3 o
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! G- T+ @; R( y* `
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    $ j* v- N0 K5 b- o9 N9 y3 @2 A
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    $ }. K: H4 H/ `; y2 v: B+ H; p
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 X. ]( y4 x' m$ S6 M4 l, M/ N' c+ h4 L! g
  1. #!/bin/sh
    " Q) q  x. |: G  C
  2. #设定环境变量,如果没有设定可能会出现update报错
    6 {' x, T( v3 n' W0 M, q3 X
  3. export LANG=zh_CN.UTF-83 O+ d, }) l- P( W/ m
  4. REPOS="$1"
    ! s" i6 m! y2 e% w+ V* p
  5. REV="$2"
    3 }0 c8 F; b$ p4 M2 O8 U
  6. SVN_PATH=/usr/bin/svn
    ' D; ?' u) p# e
  7. WEB_PATH=/web/project) U5 o' o( k6 l
  8. LOG_PATH=/tmp/svn_update.log
    8 K5 p  q" O2 }2 I
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache3 d( c6 J# a: @3 G. `
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH0 i! h! u, Z3 F+ v, c
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    2 }  M, E1 s7 w% y! e  u6 z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH* f- J, X6 J$ \) Q) }# }
  13. chown -R www:www $WEB_PATH
复制代码
8 C; G# U5 \3 U+ @: r
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
* E+ L9 @( V7 Z6 T, hexport LAND="zh_CN.UTF-8"7 c3 H8 a9 J  q# O9 @. |
REPOS="$1"- y2 \; j: ]* b) e- ^3 }( w
REV="$2"
9 h: R. m- w8 m; _/ k: D& |" rsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
$ |/ O) x2 ^. D3 jsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 m/ I& M5 B$ b3 s- U% @) K

  1. 2 {" K! G7 \9 E) O+ s& U5 H
  2. #!/bin/sh
    ) d  V: x! a0 c. j- }
  3. export LAND="zh_CN.UTF-8"; J5 K; r) O& K/ x: {
  4. REPOS="$1"
    ! Q9 m- T) y- t# ?. C' [6 Y
  5. REV="$2"
    / E: b( `3 G2 W+ a: O4 [% Y
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    5 F5 K) }3 B8 o$ `/ h1 O5 I
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
, d' V) l. C- L3 r

5 Q3 N) ]6 _; f0 N: T4 Y3 S
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-5-2 14:32 , Processed in 0.094142 second(s), 18 queries .

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