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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介! I) u" l' M6 g$ r
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)" C4 M& d4 Z( ~' ]! r& D) R+ N
1.准备工作
) U# m; y5 V! g5 j  v& p% v一台centos7 服务器 一台 客户端+ x( b) |  s( h4 F- ?1 K
————————————————
1 Y5 b! I) g5 s6 P) c1 y- P7 G9 D1、验证是否安装了SVN
! p- j8 e7 Q' S3 K* m- i  C" p; I% w; p* ~
命令: # rpm -qa subversion" B; R" @* C+ Y2 [* }
1 j* d, P9 x! R
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_640 l: T8 d8 g3 {' Z9 x- P
. e' I( J/ M# w% b+ F$ s
否则,空白- L0 s* ^4 P! J0 \6 f8 K
' Z' O6 A: X) o9 ^% Z) \
2、安装SVN的命令
4 ]3 C+ A' ^/ ~: ]# i* r- T; _+ o% B2 T! W$ e. c
# yum -y install subversion
. T5 f( N9 o; h, A
. m" o5 n2 d. _, w2 {接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录3 L* s3 B  I) r# j# f
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
5 ?2 \# ~) h0 {* t1 ^% K
* _  r  K( m4 e然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ K7 A. t' s& I8 ~. r: @: q2 T, x( E( a+ R* B4 _7 ]: m. P
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
8 p: g& g6 {7 D/ I7 Y4 m( C* z# \0 Q- J  y# R  V

+ X( v$ ^5 w7 |9 N" W- v: W首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格$ j: v% j* r% U( Q1 @

6 P" e- @3 W. i3 I1 j# password-db = passwd% M) ?# `9 O1 S9 ]/ G* W6 ?9 _6 k- @

2 N6 Z# L2 [& @+ M1 k# authz-db = authz- f  M, Z8 l. B) S

: z9 Y0 F& u1 X# Y2 e5 q7 z6 S2 c/ }/ x) C- S5 x" a" k  `
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效" L" W1 ^$ O& e  U9 }
$ p% A& C$ p1 [) @: X* w
登录名=密码, j* u  u) `0 Z- P/ h) G

$ i8 b1 m9 R  @$ Z8 ]* p( m! Duser=123456
0 J4 E& p) _8 M
! _- r1 L3 A, Z! |! E/ n4 k/ T5 s$ _! T
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
3 F/ o6 b+ k/ V( v: \' F4 \: G- G4 Y. q4 ]$ V0 A* K" y
# * = r
6 M6 h; x8 I: b. }4 V! T4 W  x9 U6 o! d; Y) f1 I
[/]
6 ^/ @! x/ ]: x8 `6 ~
# Y: y( n2 U8 O0 W! mroot=rw; x- S! Q7 o" I: [

; A) S6 ~* i) f: p这是用户的配置就完成了
9 s" m  m+ z, y9 e8 p% f
5 ?& `9 t% x$ D# ~$ {# \接下来我们就需要开启svn svnserve -d -r /home/svn/blog
0 |  x& s* i5 H# P& e, |$ `2 msvnserve -d --listen-prot 端口 -r /data/svn/ssyleo2 g6 e. G( F/ D

5 u) ]7 M! @1 z+ ?/ B2 Y/ V使用此命令开启svn 根据自己设置的目录自行更改5 O) p+ C4 Z2 @, j. J9 @  R

: h3 n8 Z# O/ ~/ ]使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
8 r7 e  q" S, i  q# l8 J* i8 h1 e6 p6 b! Z' E( \

* Q0 \2 h' U  ?. N' A# uwin下载svn工具: d8 d& d0 z9 ]# C2 S, R
+ @# v. `7 Y+ W
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了9 B5 \. o, D% z9 K% B

" }6 |0 F1 b$ o& P5 J. J1 N1 F
& b& D0 U4 I( w8 E. _8 x$ u( |重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码' V4 k  |2 ]% A
输入你的svn地址 地址请根据自己的设置自行更改: T1 i$ N& x' j. z) C' W' ?6 I

% h+ }: Y3 f% M# H
' p  H& _) [3 |( W1 }然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了, C% Q( {4 C5 ^: g  \3 Z$ M

- f" e! h/ M' [
7 F- @: ^+ r/ h' l+ C1 b3 X(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
6 Y4 g% P3 b# t  B- C  \; i$ H+ A
9 Y7 p! [0 I  D( A- f* t& ~; F& g6 a8 C  M, @

- m2 X& A* x' C( n" v4 @3 k可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 z- a/ b2 \7 ~% E& m1 k! W- s9 u/ Z* Y9 ~7 y4 t  q
这时我们保存在版本库的代码就会被同步到网站根目录
. [8 d# H) u! H
0 S. \! B- \7 ~! U' C6 a1 Y9 L  t

5 M0 j7 |2 l3 C; {% V0 ]! V: y6 e$ d# S/ T; f: x( ]5 `
2 x6 ]% o! R! [. |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录% ]) {. |3 [0 ^7 c+ G. j8 D! P; `, J, ~
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( j* @4 D+ K9 x. r' c) Y
( J' t. k7 @9 |; o; X* Q& k
  1. REPOS="$1"
    $ v4 x) q1 v1 x" [
  2. REV="$2"4 z, U1 e- V+ m& i- ^
  3. TXN_NAME="$3"/ c4 M+ T6 Q, r, l
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    3 Q  ~" n' Z: ]5 P/ r' K( P8 @
  5. MESSAGE="$(svnlook log $REPOS)"0 f) b* n* p5 d$ V% R
  6. SVN_PATH=/usr/bin/svn! ?# x& S* [6 N: w, _, f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo8 L8 z5 t: v8 ~# H
  8. mkdir -p /var/log/svnlog# ?5 H, M$ U9 I  o
  9. touch /var/log/svnlog/ssyleo_update.log
    8 V( ], z4 R* M( p; T1 K
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    & D7 P; P" T. n: J
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 ^" A3 W4 E- k- j& h0 ?% F
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH2 h1 E1 a# E, V5 ~% {$ s
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    / Q+ w7 F8 |) d! V: T# a( M3 U
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
' Q9 m, e  g8 e3 U( I
. G3 e! v0 y; C" o3 L
  1. #!/bin/sh( M& m+ }; N4 E1 v
  2. #设定环境变量,如果没有设定可能会出现update报错
    2 B6 u# g  r8 e
  3. export LANG=zh_CN.UTF-8: r' I9 z, H! I/ N$ C8 Y8 y
  4. REPOS="$1"
    3 h2 p: H6 |2 `( `0 o/ j
  5. REV="$2"9 e3 [0 ?6 |) I1 Q! x/ B
  6. SVN_PATH=/usr/bin/svn
    - g1 c  L" k* U9 u" m
  7. WEB_PATH=/web/project
    ; B" R, b2 J8 s4 C0 D- v- j8 [
  8. LOG_PATH=/tmp/svn_update.log
    8 D% z* r. W* I& n
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : @" H  Q6 h7 y& b/ M# v
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH9 @5 K: T! u" p- U. q
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH$ e! q7 N0 S; c9 \, X
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH7 T' ~2 j0 n) H3 R3 R7 T# b
  13. chown -R www:www $WEB_PATH
复制代码
) M. X- `& \9 r+ c1 l
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
" k# m5 G' I7 Y$ S( Jexport LAND="zh_CN.UTF-8"
$ {1 K2 c+ k* z3 V; m2 W6 U" ^( cREPOS="$1"2 \4 l- Z2 V1 h: g& g' Y
REV="$2"
% f$ k; _, Y4 O; `svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- @, |; |- \" j: u) t/ gsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
3 [% k8 j2 o" c0 k
  1. 9 Y0 m, x* f( W8 C% T  }8 Q/ [
  2. #!/bin/sh, B6 J) {  h3 |5 @/ L  D
  3. export LAND="zh_CN.UTF-8"" B. B( T3 R$ I- e2 T7 t6 c5 P  I
  4. REPOS="$1"
    ( {/ c9 k3 C+ F* s
  5. REV="$2"
    + v1 Q$ f% C  a! l
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache% v  r0 p' R2 _$ h
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

6 [8 t0 ?- w' w+ V% E# A6 _% U  u
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:54 , Processed in 0.056819 second(s), 19 queries .

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