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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
  B7 m: |3 A; _4 w+ n3 zSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
; \6 ]5 O% U3 C1.准备工作6 e0 H' a, \, I/ h! `+ f
一台centos7 服务器 一台 客户端  u2 h; D5 E0 q( ?" y" c, p; z, S8 k/ C
————————————————
4 ~( M# D5 b/ }5 B  \( p! t) {5 r2 {1、验证是否安装了SVN
1 n. H( H% g! B
2 o2 f7 Z4 t+ h' p$ z命令: # rpm -qa subversion( c- `  V6 O' z* O, X
- c8 j% e0 w  H& f+ w/ L: k, S
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_646 w+ Z, U4 O6 _4 }! ~
3 c# T4 L. h, s$ c. l/ p
否则,空白
& ~# \  x0 @; }6 ~" x5 A
) A! C' l  [7 ~5 z2、安装SVN的命令
  Y# H- e* E: I7 D/ }* ]" E8 N* u" E
( @3 J5 W+ Y8 n" O& N# yum -y install subversion
+ P6 l- d' Q' M( l, _( K' i* G
  [; _$ _7 z. t1 ]' p; K# X" i, W接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
. y) R+ u  Q9 ]- a* w创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
7 j8 j  z  c% ?4 p% s2 F0 b% P
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
/ p) F. g3 r+ p5 v; C% j, q9 d/ c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)1 x/ f  K0 o# F) h5 r$ s
, [! E& }" L' `1 L  s9 X

  e, }1 x' W, \. F/ n首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格7 t0 ]5 a2 z) ~7 C- X

; K7 N' d! T4 i. ~# password-db = passwd
5 U% U/ j- _, X& f7 C8 j* R' x4 ^/ l! ?! Q+ |; {, _
# authz-db = authz
: |7 Q6 q7 Z5 [8 m. D7 h' s, `, T- R+ d1 B- K" E$ _% n$ B
9 J1 F) P( g4 A8 \2 n" G) w
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
  y" |8 K' G( e1 w0 q; J; N& V. l
8 w+ w; T. S6 ]% I登录名=密码
8 }# H: ?0 O" s; u8 ^2 _# f' `
, P9 }  X; k- Q9 [+ H) h; v- Iuser=1234567 R; t& J! q9 {8 E
* w" S$ A: G" h
/ \5 x2 \3 M; o1 C2 r
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
: }' u) j' h0 n3 l0 N
$ b9 |* x7 x# K# * = r' U$ L( D* D: ~% c9 L) G6 r
0 b# O9 j$ y0 P9 r3 a
[/]
2 v) i( f# {; r) c2 E  ?/ l. e( Z( ?$ e$ j  {: A
root=rw6 w  [* B2 F4 k
: r6 T. O2 D! Z2 [- f
这是用户的配置就完成了" x) S1 e; L# q4 B3 I; ]/ }  ?

7 ^! n) N' ~- q! C" c: b0 C& [接下来我们就需要开启svn svnserve -d -r /home/svn/blog ' q3 p8 ~  t' X, Y0 }; B
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
; H# a+ }' ^8 Z! ~$ P( b7 \, x( F9 W8 ~, m1 V5 H1 \
使用此命令开启svn 根据自己设置的目录自行更改
1 j( n/ S% V6 W! ?7 a
# t0 T) G2 \) n. W) v/ v2 |使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了8 P& ]6 y+ p, T% I. t

. Q5 i4 n# {4 X) q6 u: L  h( l/ o5 i- S9 I+ a
win下载svn工具- P( a4 N& Q7 t! x- H8 f- ]
) k! f+ y/ O+ d- J" |+ u
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
! `1 Y* }5 w: k" C+ i% v
5 X) h2 N, t( z3 P2 `! A( ~
. v) L3 Z, q: Y重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
5 E! y: X7 |5 H' T8 @输入你的svn地址 地址请根据自己的设置自行更改* c+ [" l  S* X8 Z9 @

1 K& h+ J& L/ {3 Z! d0 }' c3 j9 [: a; `' Q$ O9 q
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了' ^/ f" s: Y' ]# S9 f7 l
- r8 W5 d' R. z# ]1 ~. v; O, @

' y, Z/ \  `3 ]9 }" I# t) i(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
! M+ ]9 N6 z- [3 S6 Z
- E! L/ d3 q/ i
6 v" W5 w; X8 q$ ^. I# h) }" n0 J; d0 \, O# a- M0 F2 }
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
) s* v& h  j" P( ]- n, Q- y, V; ~" u: |- C
这时我们保存在版本库的代码就会被同步到网站根目录
+ A% m1 i" W# F, }6 ?9 Y8 P6 e; @1 x; g6 }
3 l% W. f! y/ C+ r3 K$ I$ Y; _
; ~0 P3 J) W7 o0 @* K. L

# h! s; Z6 M$ ?/ ^7 z9 p0 G
4 A: E4 v8 \# C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
& B3 N- N- y4 t8 K, ncp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit" Z- L- r2 ^- d! n# a0 Y6 p' w% i

- t; k2 \  a, Z2 k4 H3 C5 t
  1. REPOS="$1"
    0 O" T8 e& z- |) I3 |' @/ U
  2. REV="$2"
      D9 H4 w: R& u# ?, j3 m0 k
  3. TXN_NAME="$3"
    3 V% z( s& e& z. ^: o6 j
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"; F% h% J  }$ z. p1 O/ J/ s
  5. MESSAGE="$(svnlook log $REPOS)"$ J/ W2 C! Z/ D. j# n- e, l1 w
  6. SVN_PATH=/usr/bin/svn! g* ^/ S5 X- _3 T/ |
  7. WEB_PATH=/usr/share/nginx/html/ssyleo2 u4 a' y- f3 ]% v
  8. mkdir -p /var/log/svnlog
    $ D. |* g4 f6 y$ b
  9. touch /var/log/svnlog/ssyleo_update.log
    - M( h/ ~" k, o2 |& m- L) D, I9 S
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    8 V/ w9 d2 |& X, T7 [+ d, G. u
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ( ]6 |( [+ P) s( a1 M! q
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    : J2 f8 \; z4 D
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH# r- G( T* L$ r/ z! @
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
" `! s. r! x  }' u/ R$ W  J8 \; B
6 J: d( A. u. U8 S% e* K7 I
  1. #!/bin/sh
    . K/ D+ l7 s9 g) N* g& U; j
  2. #设定环境变量,如果没有设定可能会出现update报错
    : D8 q$ H4 ^4 D& ^) y( @9 b
  3. export LANG=zh_CN.UTF-8
    1 Z$ Y+ ^: ?; k# M' I0 `+ f
  4. REPOS="$1", v- o) n0 O" A# X7 I1 B1 `
  5. REV="$2"
    & S" Q, l; Z! }1 S, R$ X. l* m! J: |
  6. SVN_PATH=/usr/bin/svn6 P; w+ Y) s1 a5 s7 j9 d; |
  7. WEB_PATH=/web/project( p; ^( M" @8 X7 ~
  8. LOG_PATH=/tmp/svn_update.log; x" N4 P; [8 @2 X
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache, x/ `$ i: K. h- i2 V# `
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH9 E$ Z# Y* B* j1 |
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    - s3 |# ]  E0 K3 d* j, j" A2 k
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    , |' \! b& d- l4 t+ R0 e; c+ z' t
  13. chown -R www:www $WEB_PATH
复制代码

7 }1 ?  Y! P8 ?+ v
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh; Q$ T, C7 G) K( d
export LAND="zh_CN.UTF-8"3 F5 j  b: @* T6 i! R
REPOS="$1"
9 M% s7 o5 b" r9 d) A5 g+ X1 ZREV="$2"
* _9 v0 x6 I$ {svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( o6 O; m! c2 e( D' Osvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
2 g( y( j; V4 W7 \6 a! g4 S% a
  1. ( {; {; F& U& Q- f% E/ B3 q
  2. #!/bin/sh
    $ n% g8 G* b* \1 O% M
  3. export LAND="zh_CN.UTF-8"
    : ~+ J1 f' C9 i, s  A) z
  4. REPOS="$1", @0 K7 Y! |  ], P
  5. REV="$2"2 j1 Y6 P: b' R
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! r: y0 g' _& N2 [
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: p! [8 r2 B. F1 Q9 t9 r+ K0 i2 {% l) \; F
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:08 , Processed in 0.053062 second(s), 18 queries .

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