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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
$ o* X, t/ _1 V9 ^SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)  J6 o$ Y* e% S' `
1.准备工作
* C1 i8 h1 k  ]3 x5 F/ U7 k7 _一台centos7 服务器 一台 客户端  V6 h5 s( _, f
————————————————. h' D; {) `) b' `. f
1、验证是否安装了SVN
3 h$ F9 x5 G' f9 e# X' [; ^4 i; e$ j8 A
命令: # rpm -qa subversion
0 R6 y( J* J5 n( S* U( y, {" e1 F6 n( g9 D, z! X
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64+ n; w8 `( Z9 f$ e
. G, b3 D# j+ O( o
否则,空白
# c. y* G5 v3 ]5 T) D7 U! a1 h; ~) ~7 B4 B
2、安装SVN的命令
' ?$ x, M: D+ ~' i; S( L8 F% V! K. d+ W' E* L+ w! n
# yum -y install subversion7 W6 }- i* h+ L/ E, n( a" n
$ D& a$ O2 k% f$ m. S
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
8 j* n  U9 ~/ o. X$ b5 s" G& u创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ v' }, f4 u  D0 X& I
1 a( ?- q& U" B3 J
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置) z. j0 X0 V! S7 I$ i% E

' h+ w. U6 s' c- esvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)4 C- L: J$ ]5 A8 [% G4 s
# I9 u  D# j8 ]$ p

9 r4 u+ J* Y1 A- g* y: l" S首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
5 N9 N( c0 t0 S6 z. K
8 q+ G! o$ Z1 E% s+ K- {' C# password-db = passwd
4 S5 H7 m& I' M- Y; X; W3 t" i! ^$ N+ _( a
# authz-db = authz
+ \% a# E5 K' K* M  ?: `1 w; Z7 R8 `: l; y6 |

% i8 m% Q- i7 q$ e$ w" g2 E$ b& ~然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效" M  q$ @, m# b; F' U5 Q0 R3 S+ r

5 I$ ^9 B7 c' Y9 [6 O/ P登录名=密码  f: Y/ H* r0 c6 H
0 R; b: M2 u% s2 U8 l- F) o
user=123456
  E/ ]) w! n! g5 y8 @+ P+ s/ t  _$ n4 W
2 u* F4 r6 l% X: Z) l3 t5 |
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)& l) s" e* v+ ^
+ i0 A2 n$ f2 N' m. I& i) g
# * = r
! y' C7 J! c! a8 |
0 t7 S: ^# V8 w! p* `/ p; d[/]* X2 p$ i# l9 s% [& X1 v
$ {# ?5 b2 V; K* U! _2 }
root=rw$ _0 G2 f& b" r- V. l3 V

4 |+ I/ g  Y+ K3 W% ?这是用户的配置就完成了
. I# B3 y& K, X8 I( F
/ A8 o" @/ |  Q0 \7 e* H接下来我们就需要开启svn svnserve -d -r /home/svn/blog
5 g) q0 S9 J1 I5 Qsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
. h* g% w9 z* k2 i) j
* U, w: g5 y5 {( G  q6 ~4 Z使用此命令开启svn 根据自己设置的目录自行更改
1 H4 q5 @8 Y; r7 h& ^$ o9 P" z3 G( D  I% q/ m
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了1 z' Y1 ]2 J4 Q$ g+ ^1 R% V

1 t" m8 P; ~, r( v4 ~- z
; ~! a! c& r- c+ h3 [/ U  W9 A: V/ Xwin下载svn工具
! \5 {% f/ M( P9 W) T
- @3 [8 T0 E" e2 B! l9 z! W接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了1 |3 E/ p( g+ P
- C  f# ]9 ^! t) x6 w4 T! U

/ \3 E/ z- D; }4 f* Z重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码/ L% g9 F$ {4 c
输入你的svn地址 地址请根据自己的设置自行更改* n& m: C+ v. k! O

+ `1 M9 {: e7 P! a( ^1 J: _+ L9 U( T
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
5 H9 \5 N# D7 I5 E1 h
5 ^1 e% t$ `/ Z6 h( V' v* t& I, }& K6 B  p
! |9 _. g0 ]1 [7 ^(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)4 f, J  C1 v: O' g1 U

  P1 V& S! Y! E( M; m' h1 K2 g2 }/ O! @

1 g. t9 r3 k; k) {可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" I" A- L3 W7 ^" Y& u, k! A3 b' f0 s+ f" q) f& O- ?. ?
这时我们保存在版本库的代码就会被同步到网站根目录; j* i0 q/ J, C4 ~) ^( ]- _

6 A: Z- c9 X0 K: ]  M* ~8 R
" ]# ~  K" o- |- U+ e9 o$ E, r$ m* d" G' r. ]- |

& E" f2 K. q. w- J# g( `. p
7 k" }* ^% e' d' J2 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录) b* \3 W  [& T9 K# h- t3 _
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit8 i, W! \+ l) |* r
/ @" H6 Z' |& q* ^$ ?4 ~1 q/ m
  1. REPOS="$1"
      _+ p# y) j  d9 I4 H4 r6 I
  2. REV="$2"3 g3 G: J! M+ p& D
  3. TXN_NAME="$3"
    + r# X6 i9 C  [4 T$ }5 d
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
      o' o& _) |+ E: d; j
  5. MESSAGE="$(svnlook log $REPOS)"
    " Q3 I$ P" y9 W6 @! ~/ C
  6. SVN_PATH=/usr/bin/svn
    * U' L. x2 I& e! v
  7. WEB_PATH=/usr/share/nginx/html/ssyleo6 v8 ~- ?# B' Q" T
  8. mkdir -p /var/log/svnlog
    3 Q. b/ B6 h2 @1 a- ]
  9. touch /var/log/svnlog/ssyleo_update.log
    ! B: Y# ^/ I% r; G' W3 n9 j( Z
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log1 a1 n8 Y* w( N) ]$ x' j0 j8 w
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH4 B+ L1 ^# v" z- f* N% M# O. e2 T" z
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH: P* x& T8 w. d# N
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    / f* S1 T) E* B9 ]9 K) ?
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

, P4 d: }9 z# K8 q6 [! l
, v( s4 g& l2 B* `+ k, u" Q
  1. #!/bin/sh) t: ~" ~9 u- P' x; C
  2. #设定环境变量,如果没有设定可能会出现update报错* `7 u& B1 J4 _4 v4 e
  3. export LANG=zh_CN.UTF-8
    / {# m- @0 [+ Z2 B8 o
  4. REPOS="$1"
    ) q4 y* B  j) l5 E
  5. REV="$2"8 Z  q2 q- t: I( s( p& j+ K
  6. SVN_PATH=/usr/bin/svn! _1 J8 v0 o  {( K4 E
  7. WEB_PATH=/web/project
    3 O; y. ~- W6 j$ m
  8. LOG_PATH=/tmp/svn_update.log1 ?1 Y6 e, x% ?# [) C
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    6 b5 V  e0 u4 ?! C
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH# l% v! X! }& R1 _% j0 p  T0 o  f
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH% z  H- o# M; J0 u' z$ d
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH8 I4 R( e: z% f& X
  13. chown -R www:www $WEB_PATH
复制代码

" A/ ~$ L8 m/ E, Y& {, ~$ j
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh9 J$ q# d* `- Z& H7 p
export LAND="zh_CN.UTF-8"4 n/ o  ^# a2 h; \
REPOS="$1"9 j4 q& y( f) H. Y4 W
REV="$2"
1 y6 X" G' I: w1 Wsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
$ P* ]7 S. ~' N/ Y0 Qsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* n4 X6 B& Z: p1 F! @
  1. 9 ~3 k# C  |1 X, Z8 c  T7 l& h
  2. #!/bin/sh
    ; o8 i& n2 \4 L, T! {- U4 A4 A9 o
  3. export LAND="zh_CN.UTF-8"9 k5 T) c  A$ [; Z( X
  4. REPOS="$1": M0 e0 B% e1 l
  5. REV="$2"5 r" I7 b1 Q7 V" s7 M) M: x
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    2 R/ C2 v+ d# C; t
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

/ ~# q( o: j5 J" M8 x+ I, {1 o+ m' ?. Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 08:14 , Processed in 0.064578 second(s), 19 queries .

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