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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介* f: d5 Y3 m: a/ C# f
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
" j3 ^$ G$ F* Y$ Z1.准备工作
3 U* D0 D6 z4 f; h一台centos7 服务器 一台 客户端5 u7 ^) M0 Q8 N" t2 M
————————————————& i  o! D3 ~, ~4 p" w! I
1、验证是否安装了SVN
" ?7 y* q; q$ h( j) h% o4 p* k* ~8 k. _  _2 V' {2 c
命令: # rpm -qa subversion0 U: c. K7 E* ?* {; U

3 Y  ]- _" D/ F! m  R: l9 U  j" W如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
8 a. p+ ~3 j) l( z$ s+ m3 {4 s
$ x3 m6 s' J) v8 b% b否则,空白
; ]3 }1 p9 }$ o6 f6 Y, C! A' T# j6 f' X" x% ]
2、安装SVN的命令
5 p( J" @+ L% N2 H( f$ F6 Y  C' s( _$ p, @4 N6 U
# yum -y install subversion
. |4 a& Y  q8 s7 w/ V& `( Y: p" U# ^. V$ |4 o/ r
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
) K( g* m8 u3 @创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了7 c" \$ Z, _) c& u
- @! w" R9 q3 o( o* M% g
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
6 k  G# v7 J% @9 _& k) F3 M$ L  `0 m! G' P; |, M
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)' K3 M7 v+ b# s4 I7 B

# I6 s& `$ C0 _& X
* Y$ N$ d" b: G首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
4 @! B- w& W5 @4 V5 q, z$ A
& r7 D% ?$ O* W2 B# password-db = passwd5 p3 G( @, j& T5 M9 n

" E% f. Q5 [" D# authz-db = authz
* C4 [, @' {+ M" w% N8 H, m
6 t/ r  [( i, V# ~9 ?
& [" I' _0 x  ?7 ]然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
7 |  H: x7 f5 ^3 j' n% `( N  x
9 R/ ?5 K: S( l/ \登录名=密码: K) h  l* Q+ i5 R+ l
) E6 o+ A) I& J: \5 M
user=123456
& n$ M7 u, v  T8 n
6 ?7 d  O* ^/ N0 V; ]4 o7 U  c0 Q' P0 p
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
; v" M, E2 i7 a
. `3 U/ d8 W3 T( }# * = r; i; X3 X' D( J- Y
$ P. l& a) b( f1 |- X' t  y$ |* Y
[/]+ q9 _1 X' C6 P: J, E

# ^% r! y+ q* x% v. K8 M' mroot=rw
+ `% G7 [& h" i. Z
& p8 q4 E# E, c$ J2 B/ E2 q这是用户的配置就完成了
+ h2 D. H0 [3 a0 r5 @. U+ E4 q: V, O) Z# I" }6 E' ]" _
接下来我们就需要开启svn svnserve -d -r /home/svn/blog ; R7 n+ U2 y% X( |' i
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo5 ?  Y6 `$ U; {: P

  y2 d' l8 g8 N( p$ ~2 x. ~使用此命令开启svn 根据自己设置的目录自行更改, l; X4 L3 y4 T# j0 Z9 y3 l6 Y7 t
! @0 G% G* U4 k9 m1 o; o% w- M
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
6 h1 Y! L0 \8 n! B
2 _- h: K5 _; G) S* l/ O; q4 a  A9 d2 q+ n0 [" q/ v6 R3 K) H
win下载svn工具
/ f. H8 {2 t, Y$ D  K' G& Y  Q. t$ k/ j
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了& G) g4 T/ g" ?

! p/ E  m9 b9 b7 o1 {( j3 v) S) S3 Z$ ^
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
% Q% ]4 F2 Q; i. D) T* g& X6 R$ I6 z输入你的svn地址 地址请根据自己的设置自行更改! V3 C: G: O. V& W; S7 t

1 X% l, U1 b' ~2 @
; O3 X& X1 p1 o& Z% \3 d, e8 ^- x然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了( s8 @% x: _$ W1 [0 B
, m0 z. E0 E7 M) q5 F0 R
5 t) s8 N8 |: l2 n
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
7 Q6 ~2 K0 ?" o% |3 B5 d& F1 k2 H1 u2 w! L" w% `+ u, g8 ~6 Y6 s# T; r

1 ]+ t, z& W4 r6 C# G: P4 {0 g- Z/ h& O0 e( @) d
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
* z) A  C) I7 W0 l* v
* N- U5 k2 o4 Q# i* m/ y% ^这时我们保存在版本库的代码就会被同步到网站根目录# F/ A5 H6 }' P7 r# |9 [

" g- q$ c3 ^+ Q7 |
1 v/ L- ?2 d( o& v
$ O' h# Y+ K7 m: T: x' S
- w5 i7 T" a0 G1 \; m: ^6 U& E$ x# T9 N5 P7 F7 J4 k( V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh8 o6 _* L& d" w# w: `
export LAND="zh_CN.UTF-8"
0 g5 ~2 t& l6 N1 U! y7 T# RREPOS="$1"
! |( O/ ^: ]) LREV="$2"
) g/ E+ g2 y2 X7 J, e, h3 h8 Fsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! a9 y. p8 d, [* q3 G. y
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 v, V# W+ V/ G  f7 W3 }' p# ~' p! ~
  1. 1 w: }. W6 L' T
  2. #!/bin/sh- V$ n- \4 G) G
  3. export LAND="zh_CN.UTF-8"1 h- j7 J; ^5 N6 x  b
  4. REPOS="$1"! r  m9 O' D! d% R9 J8 H. B
  5. REV="$2"' X: W2 h5 x7 c2 f4 R
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    7 A' B) |2 ^% ]0 K7 i9 U
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
# d2 w: f9 x- f. y
3 Z. v: _: v  v- k. g
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
; A0 s9 Q) q& fcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit' ]+ ~5 H7 i- n, w. A
5 j4 B  R1 ?! N
  1. REPOS="$1"
    8 w& R5 a3 a" F6 n0 j6 ~  i. f
  2. REV="$2"+ V8 ~+ e- x& G
  3. TXN_NAME="$3"
    % Z4 h6 l) A1 O: P
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    , T) F1 o* i# B
  5. MESSAGE="$(svnlook log $REPOS)"
    % I" ?. M/ u4 z7 O* [9 }, f$ r
  6. SVN_PATH=/usr/bin/svn
    1 A5 i$ o5 B* a9 f. r2 Y
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    7 V  M9 }, D' S
  8. mkdir -p /var/log/svnlog
    2 q0 |. ]: Y5 s4 d' ~5 F- V( g# C
  9. touch /var/log/svnlog/ssyleo_update.log' q  T: s! t" u$ n% k7 r
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    6 s1 k; t% [" n: v/ m) J# y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH4 C/ P# T  a( v0 N& |2 D
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH! _) E- B& g6 q+ ^/ a0 F/ O, q
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
      j3 Z+ _4 d$ L  h4 H
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

" H& ^" R; [* a0 Q+ ]  ^& N  U
% r1 E3 H8 i  B" G, v* ?" Q- U
  1. #!/bin/sh
      z- ?* i- Z% g$ N) q2 J8 a
  2. #设定环境变量,如果没有设定可能会出现update报错
    8 J" ^9 G! j/ d6 K" J
  3. export LANG=zh_CN.UTF-8/ L& j' K4 V( l, K! F7 Z( Q& l0 s
  4. REPOS="$1"7 w4 i# C. q4 I) O% ]: d
  5. REV="$2"5 r  P9 k6 N. C9 x
  6. SVN_PATH=/usr/bin/svn
    + E' V" O% a4 A# i) W$ ~' _$ j7 i2 n
  7. WEB_PATH=/web/project
    + @9 b! |' j' ~
  8. LOG_PATH=/tmp/svn_update.log
    ; G# Y7 M' n! J' [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : F& }8 q' a) p# M5 {: o6 c
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    5 E# o% v: i; K, e. P
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH) d+ c4 F( Z. t3 |% A
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH$ ]/ p9 _. D+ S7 M' G( n1 _/ W
  13. chown -R www:www $WEB_PATH
复制代码
* W- |( b. X! {% `$ W! F6 o  h
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 15:52 , Processed in 0.115895 second(s), 21 queries .

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