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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
6 _  t' Y, a! @3 y0 bSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)3 o& r8 }* {/ e7 x* ?
1.准备工作, j. N+ l5 y1 R& L& j: l+ i) n1 L0 O
一台centos7 服务器 一台 客户端# a. h5 g* n# C0 f6 C; `
————————————————" a) h8 H) S8 F1 h" H
1、验证是否安装了SVN
% h. j5 p2 b! v! Z2 R1 x
/ E! `( s  w' p" ~/ n4 T- y- H' P命令: # rpm -qa subversion
! Q: A& Z, d7 o  l# G- T; ~7 {( K) ^8 L( K
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
/ g5 T% G; P) N+ C8 S6 ?' }5 W# k$ i5 t9 O* p4 A' I$ A9 o
否则,空白, Z1 f. g+ X1 i  [# e# o: }

+ b0 q3 c( X5 Y6 w) N2、安装SVN的命令
1 H" _6 m1 o" g0 b5 H7 w- b' _( ]5 K" a- q- E/ c
# yum -y install subversion
+ `4 t5 z: K# C9 y, x! i' s" K9 \- G0 b; C* |
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录4 L6 l. S/ ?! [- r  [
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了4 E' H3 B) Y' i
. Q& \# w) M2 e$ J
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置# W" p  |7 Z' O% y0 d4 Z- B
7 p* t  Q5 l$ z$ L
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
8 k% y  I* q$ D* c* d+ V. o! r, b( ]2 w; t6 I! U. H

  L6 q6 B6 J/ S, I首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格; n5 c1 r  O. B  b
& {# v4 S# J# E' `, }- u
# password-db = passwd1 i& y, w! S  k- |7 n, U. q% z* T
6 q0 c6 @5 ^2 q7 c( v
# authz-db = authz5 F* ~4 n3 v: c$ U
0 t1 ^$ H$ s+ c; y, R
! m6 u) z4 C% x# ]
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效! B- @# s. G5 d# ^

# @0 ]' E9 i# }8 A" }5 {4 U登录名=密码
' E' j# o  e4 m: C# N/ D
; X( B$ B' }9 |+ Ruser=123456' {2 \6 R7 O8 w0 e6 b4 J
1 M- X  z2 {' |

$ G) x8 `4 U+ Y最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
0 c. G% E" _8 m2 U
6 F  A0 }5 J( k. J5 }& r1 t# * = r4 k$ N8 P: Y/ O

6 @4 D% o0 @, Z$ m. s0 \[/]5 B' Z/ Q, d: Y& i" L; M

- x/ c$ e" Q2 \8 zroot=rw+ d9 R& N/ j- X6 n  s, f

5 [7 {: u1 m+ y0 F/ [这是用户的配置就完成了0 t% ~& A- r+ [
# a+ U; k5 i& l- a5 M- ^
接下来我们就需要开启svn svnserve -d -r /home/svn/blog : K( h; G2 d+ B) G' T' N
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo. q) |" U- P7 d: q6 x5 u

  o5 @3 G  E" J( m: p; _( n使用此命令开启svn 根据自己设置的目录自行更改# R% C' U+ j+ u) |

4 x) S* X  g* R使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了% G5 _6 H9 b) x% R
& o6 O7 @/ f: b* G/ D$ Y
/ V" B9 o+ H0 x% I- [' f3 z
win下载svn工具: W1 D. u$ P; |4 K2 ~
; \$ t, v3 J5 p1 O, {$ e
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了5 _8 k  I% I- I% Y9 y3 v+ e

5 q8 q( \/ F" t) W/ R
0 o+ c9 h# ?7 c' T  }# p重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
6 I$ o- h# q( F8 o! A% c输入你的svn地址 地址请根据自己的设置自行更改
* m" ?; q7 d1 Q6 f* g4 c
$ y6 P. X' d1 U% R& w$ `" u- h6 j' W, M; d8 T- k0 p
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了/ j* z  y- F% g

  O3 X7 m9 Q7 f9 y" {1 W$ x& P6 |
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
( M6 l1 O+ C2 F1 e7 ]# v; @& ~2 o
* A5 [: X: {0 z" m1 ^2 X4 u1 l6 G& s5 t) v2 [  C: ^

  z! q/ h2 F$ K0 C- b6 R+ z( \. M* B可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
) s$ }9 x- `( v% }; L. d, S* j
' `0 I4 p. T$ p: R4 i5 a这时我们保存在版本库的代码就会被同步到网站根目录& B5 e6 d: q1 H

- f1 ~6 n* S9 N' _& s7 A  D  P8 R) c. @

& K: @1 ?! _) b' e0 O/ p' U7 T
* v, G9 _$ y1 {# @0 ]; D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录( [2 G/ T) M- u- n
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
0 R# }" J1 @0 w2 G, f
) @3 `+ x$ G3 t$ @
  1. REPOS="$1"
    . O) n' Q2 {. n, N( ~% J! H, j5 X. U
  2. REV="$2") t, S2 Z- c. G
  3. TXN_NAME="$3"
    % v7 @# z2 l1 s6 k
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ; X% v1 A- T7 r: F
  5. MESSAGE="$(svnlook log $REPOS)"7 Z, e2 q& o. z5 E; Y, D# G
  6. SVN_PATH=/usr/bin/svn+ B" M8 {) d) z/ A( ]+ _
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    8 I4 x6 O+ |6 d, z9 q
  8. mkdir -p /var/log/svnlog
    $ r9 p& V& K1 l$ W/ ^  N; Q
  9. touch /var/log/svnlog/ssyleo_update.log
    ; ?" r  J% L4 \' h7 a% j) W9 i/ ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log; w: K7 O4 U% K. R, [  N6 P: V6 z: X, Z
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH) A* }5 j1 l% _: v( [& v
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    9 z8 c8 B0 ?0 X/ ~9 h" H5 ^& m/ s
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH  b: k1 o  ?6 U) k
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
% [( [- `! Y0 Y' Z" q
; B" P, r* e! y  A2 [4 E5 c5 L
  1. #!/bin/sh
    0 F8 L3 q6 q7 m# T$ B3 C
  2. #设定环境变量,如果没有设定可能会出现update报错
    + }" T8 o1 N7 q2 V" @3 o
  3. export LANG=zh_CN.UTF-8( t! r7 f  ^/ ]9 \7 {- t5 l" z
  4. REPOS="$1"* U$ \9 C5 b3 m* s
  5. REV="$2"6 U1 v& `. K7 M" _1 e4 ?1 C
  6. SVN_PATH=/usr/bin/svn
    ; _6 b+ K% D' e; q$ I
  7. WEB_PATH=/web/project- g7 q: E2 r# v+ N- K+ k5 q; W; o
  8. LOG_PATH=/tmp/svn_update.log3 e$ C0 J7 w+ M; r  i' t% [% m
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    2 S& i! t7 \: {5 W. U" v" I$ Y8 v; V
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    : T) t$ r; r7 p# M
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH: N. H4 V0 J1 ~0 y) P
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    0 H. e- Y* k6 @6 h: [( U0 N
  13. chown -R www:www $WEB_PATH
复制代码

( ?/ U  k' Q: `
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 S6 h5 c0 R) Z! E0 R1 \
export LAND="zh_CN.UTF-8"% m* j6 @+ J  ]9 j
REPOS="$1"
0 f7 }8 ^6 g3 s2 eREV="$2"& J9 u% b+ K( d' t4 Q
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 O* C9 ]) _! S% Q# `+ u
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache2 ]$ v- \1 G; h. k% m
  1. 2 o; l- p0 D" e& p+ k
  2. #!/bin/sh! k; s; H, g" g2 Y9 U6 j; g
  3. export LAND="zh_CN.UTF-8"% I* j6 M3 I( d( Q# m/ Y
  4. REPOS="$1"
    ) v' C, D4 |0 w0 b9 V
  5. REV="$2"
    / o) Z! r* C4 a" z7 u6 \8 i4 ]
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 `6 O$ x1 z& t+ u! k
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

# X0 z& x7 k. {6 L
1 H$ C: o' y: W, \4 z) g% g5 m; Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 16:06 , Processed in 0.062475 second(s), 18 queries .

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