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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介* g& W* C- _6 J: e$ j* [
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
( ^1 f( r% [! d3 U1.准备工作1 I) z, Q' z$ N
一台centos7 服务器 一台 客户端5 ?9 [: C) s" R; ^$ n
————————————————1 }2 a) Y' j+ D3 l
1、验证是否安装了SVN
2 j* D8 w4 t% k4 ]" C& ]9 d9 {2 d4 T2 i# J3 [# p' N
命令: # rpm -qa subversion
6 `- ?' n- _. }, D* ]* S1 P' }
3 M6 i: V" d3 u+ V9 U! k) x8 n( Q如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64, d; \' p; l: T( }/ h
& q, d1 h7 v7 W% P+ ?
否则,空白
. o4 T% s7 N# t  C/ q# f7 \' ]) [% t1 j, y, ~1 M% \5 I4 p: w1 z% K
2、安装SVN的命令( U( Y7 D3 p# B( k- z0 K. t

' F/ e$ @9 L" X6 H8 R# yum -y install subversion
1 `  f, V! h: F* ^) T, a: j/ i
* F, \5 L1 m% A8 Z% N5 q接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
0 `2 B, z+ L" Y& Y5 [; E创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
# D3 h: c4 H* |6 X* S
- g9 o$ r6 j( j0 w3 U然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置  k, y  G7 S/ _$ n) l
+ G( v6 \0 ?* M* @/ _7 E
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)) w1 i# ~9 }0 c# I$ F5 h, r
' h1 N+ k+ G% y5 `, |
$ H4 u0 H* e, ~9 D7 N( L- w
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格7 P: @0 x3 J/ B% c8 G4 Z/ g

" R2 v  Q; U! c: M* w2 C& Z# password-db = passwd
2 X3 P/ E" b% h# l  P; o  y; h. o9 M
# authz-db = authz
3 h: \" K& {1 E2 L4 M; D
7 T3 l) h. ], w/ t$ \" n; |
, K- h4 y/ \+ O1 a) p8 m然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效/ u" g* f& x1 A# {' a. ~( e2 L

/ k. ^/ c% a! f- j6 u登录名=密码- k3 Y9 m/ T1 B$ h/ e! o: D

1 A) M! W0 w6 ?0 ^* Buser=123456; \& A- J% H3 A7 V5 r0 b

1 A; h/ P( s; n  {( |; H9 d: k# @: O) v( \! d0 m% \
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
- G- X! F9 g/ H- H3 m9 b
7 X- b3 b, D2 X5 X& F# * = r
& \( ^0 F3 h3 j- R: b$ H! i4 L" R# A8 S, }) \4 d9 Y) U8 P
[/]+ i( ^5 \/ G% G
, l$ @. p9 o/ x) s& z5 U: r9 o0 N
root=rw
9 w( X- U! m) v; V0 w0 |. g* ?" A+ k' v; s3 I$ `
这是用户的配置就完成了5 y; {% H4 e& P# z
( q# r) n- d1 Y; X. L
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
! v( P% d. w% K* p% K+ J4 nsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
. B/ H6 f, f- V7 b! ^7 S0 L% h" l$ i' j9 e
使用此命令开启svn 根据自己设置的目录自行更改
, e: I, @! M' o/ d3 M" \6 x: Y5 d8 o! @9 M
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了, f6 G: H/ X- E, I
! \8 J1 K7 ~1 d" A$ z) p

, [& Y" S0 |7 d# G! R, vwin下载svn工具0 d9 w) l, R# c) @/ y

4 ?6 C4 u% l8 G( \! f2 Y接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
8 D0 V' Y- h5 j0 d9 b) p7 R0 k, d
  i& q' |& U) ]. V. }2 c* F, D0 O2 K: T6 [: @. [2 m
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
* F/ P# Y$ D0 k/ z0 S. t0 T' n: Y' z/ T输入你的svn地址 地址请根据自己的设置自行更改* t/ d- a& h6 k

' f4 |2 J) A0 J6 C( A+ {4 ]8 p- s; ?8 R9 [
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了. }9 U! t4 Z) o4 m& |0 f6 e
- b, e  p& v/ n, Q6 R6 H) e8 h5 L

  H2 ]$ X, W( O  ^+ s6 D! y5 y(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
& @9 N; `5 p' J5 f1 X' x
4 d$ f/ k' }9 s. k5 K% l  M0 k) {9 e1 l

0 k2 N4 Z* C( p' ]8 O7 s' Q4 o可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存% ]: K* g# ]: S9 V6 B+ M
4 D9 o  a% D! j7 d' F4 o! ^/ r7 m8 L
这时我们保存在版本库的代码就会被同步到网站根目录
2 j/ f# P5 X& i& J8 w5 H: d( Q, `  h1 f

4 W3 r& E8 j. |6 j$ m
: c' h! X2 a/ s5 ~( t$ B% I2 f! Y# h" t- @1 k; [% a5 W

* N5 @: v1 v( e- V) {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
$ v5 x: I" y' w) ]export LAND="zh_CN.UTF-8") r+ \0 C0 n2 h9 i, X+ a! M
REPOS="$1"
* t. E9 d& ]( u1 ~REV="$2"/ K, d  e$ o- ]* ]5 g& W
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
  y/ X' Q9 F5 o8 Z2 n! q- y! lsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) x; w: a2 |# U1 u

  1. / E) ?9 y, ]9 q7 V4 M7 i
  2. #!/bin/sh
    2 s8 V- L1 W" l/ h4 P
  3. export LAND="zh_CN.UTF-8"
    ' I$ O$ ?% Q1 |9 k, b
  4. REPOS="$1"
    5 T; e1 W' E9 N$ i/ J; r& X# k
  5. REV="$2"
    ' |" Y8 d- c2 j* ~5 V* p
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache+ _* i" B, e2 U5 h, V
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
( S0 L/ p4 W# F& I+ _

' y" p3 y" {1 f$ Z( ~$ W: @
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录; h2 a( d: s8 ~9 C
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
- |$ z$ o9 f" @7 f
$ C6 t' W& ?+ C. s4 n6 U2 @; c
  1. REPOS="$1"
      X* }" ^6 H8 q& |
  2. REV="$2"
    7 I# A2 s3 Z0 v, Z- y% \
  3. TXN_NAME="$3"
    1 e" x" h( D4 J$ n
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"$ a* y7 [  q. _/ u3 q2 Y
  5. MESSAGE="$(svnlook log $REPOS)"
    & c9 Q) U+ h1 A0 c# e7 m% [
  6. SVN_PATH=/usr/bin/svn" o, W! ]8 o2 O( ^* C. m, l
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    7 S' a& C9 z! q$ V# L" T
  8. mkdir -p /var/log/svnlog
    5 a/ Y5 N% {* Q) P8 ^. ^; L
  9. touch /var/log/svnlog/ssyleo_update.log) A3 g" t! K3 F
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log$ }& o) u, g# n: b8 Q; z
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! u' P) Y- D( `  f8 g
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    3 H6 |, J0 [- R# M
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    7 P2 A0 K0 q, X' c$ ~; M5 H
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

" [& @5 a  O$ B4 S! U% y: f) N! Y2 d" s% w+ b! J4 z
  1. #!/bin/sh
    & K; A4 M1 z/ }) C9 c% B' i; s
  2. #设定环境变量,如果没有设定可能会出现update报错! a! l& {8 A, |- S9 F. x* Y8 E" U
  3. export LANG=zh_CN.UTF-8
    1 D$ E  j6 M' o8 H% W$ |! t
  4. REPOS="$1"
    3 k7 ?0 d- w9 I6 `6 S+ ]
  5. REV="$2"7 l' K' \8 I& r3 L
  6. SVN_PATH=/usr/bin/svn
    ; q) G' G0 w* `  V) d7 @
  7. WEB_PATH=/web/project* B6 k. m, ]6 }" @
  8. LOG_PATH=/tmp/svn_update.log$ I+ I+ b1 ?$ e) d  h) ]8 @
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    4 j4 A- y+ k1 y2 X" h) C% j3 I5 ~
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH. b) F; c; q( J& Y+ k! P
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH& y/ x; P* I0 v6 p" n3 ]
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH. V- s& z7 Z5 P9 r. d* E% `
  13. chown -R www:www $WEB_PATH
复制代码

% ?# F+ T- v' ?1 |
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 18:08 , Processed in 0.054128 second(s), 21 queries .

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