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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
+ @! G9 [/ k- h' ^9 \9 x. @  i6 c# `( KSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
7 n. z) I, h: l1.准备工作
' z- ?( _* Y8 B: I1 [9 n一台centos7 服务器 一台 客户端# P; R1 l. a7 c. B5 y+ b; m& b
————————————————
( S  ?# z4 ~- O, J1、验证是否安装了SVN
. l' q, t7 @6 h' ?1 _" ~  k; m
2 I* U5 k6 j; E命令: # rpm -qa subversion
8 L7 D1 e0 f; c5 e  u* o" g' l
* }9 @) o4 B. s- e/ o如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
" K5 L& m0 t( N3 a% i. [+ X1 i+ y& {; A
否则,空白
) C2 }) t/ k1 t$ f6 i( H/ k/ S9 v$ |
2、安装SVN的命令
8 f( n9 \# _# _5 j4 ]1 i
6 X& H5 {4 N0 b# yum -y install subversion- E( M0 d6 E. @! g
8 r. H* i: Y! [: a: ^3 h# S
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录9 V1 E+ W8 ~/ R/ o0 X4 q4 n
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
! }, Z$ F' c7 T* T0 x* @4 |+ W
% B% A7 w: B$ O" T' ^9 A然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
* \3 P% X/ p' U6 r* A* y6 K8 d5 t( y! P, q  a* c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
7 H7 d3 T5 L* w% n, n1 H5 x) ]
. U% R' g4 |& `, T: I( D6 l4 a4 }$ X( N5 z+ C2 Q
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
5 q7 @: ^" H3 d* k4 _0 n0 @$ X3 F3 K$ {* }& [+ t
# password-db = passwd
5 Q6 [( \6 u+ J; Y' X3 B/ C2 ^% l) Z0 N5 |& S
# authz-db = authz' h3 x/ H, @  c7 Z

( @6 t9 Z* p1 W; o, s" o6 K! A0 f( ?1 S3 S8 f' E
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
- V0 [1 z* y' P
; L0 Q3 e1 E) ]4 R6 G+ t登录名=密码" d: Q( z3 n! g

& `6 i8 ^. l* W3 duser=123456
6 U4 t+ G6 A2 ~; g2 Z" S4 E6 D  S, M/ q. J  e
1 ?4 B5 M1 h% J
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限): p& R9 W$ B7 |# a
* J5 F) M" z! ^( i/ z/ G* T
# * = r& G1 X7 q, `) a. V& z2 L. T' b1 p# p6 S

$ u( O0 k9 _4 z$ b/ a: t[/]2 _  i8 i% X/ y5 ]
( i9 }: [4 l/ t
root=rw
; g9 `* [" v+ d1 i# V
$ o9 p0 C1 w/ t" |这是用户的配置就完成了. q0 A2 x; }. i) E4 y

. f' c4 `! O6 s% y接下来我们就需要开启svn svnserve -d -r /home/svn/blog 6 D7 q# E; D) M* @: k2 f2 O) B
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
2 ^# Z7 h2 L0 a7 y
% E5 _2 r& R8 _; G8 l使用此命令开启svn 根据自己设置的目录自行更改; x; H+ I1 s  n- C% L' k/ J1 {
4 p/ Y4 T8 S) F% H& W  `
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
7 n$ B8 U) Q1 v+ Z$ s: r9 O6 x
  Y+ D  X+ Q0 z" U/ p' A  c: s) T" ^: C
win下载svn工具& ^+ A2 K6 `! ~! Q

2 j' B& p- @+ \% V接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
2 H; F" h( o3 I. y8 c) _' s2 X
: i( N0 p7 B3 c9 A, N
( ~9 c5 r/ o0 x% O( b! Y重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码! l4 O5 Q& I9 @" A9 }1 M4 [
输入你的svn地址 地址请根据自己的设置自行更改
$ ?: w7 T6 E/ a4 G# x' s5 v$ I# ~
" M7 v5 W0 d) j  o
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了1 q+ z* }5 q& B( s" R

* R2 F% n: Q- y+ e/ e, }: @9 U8 O: ~3 G9 y  Y) [
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)8 g( R5 e* k& c, a

; w5 w, y. V/ n6 y6 W4 ~* Y/ r8 e, Q* c  ^. I( ]3 _8 F+ P
; p7 T8 F5 n, S4 i' r8 j- V& @
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存& A( r6 M  _1 V& u: ?6 l- l

; C: N2 Z; S1 a5 d- m/ j这时我们保存在版本库的代码就会被同步到网站根目录1 c7 m# E0 g- r+ |( f# r: q4 l

3 Y4 l( F- T7 a4 H
1 j% J" R1 ]& M) h' w' C6 k2 e5 |$ O" m( R7 V. J/ V
& b2 Q, ?0 ]& T# K/ m

0 ~) b& x( \: T6 {2 ^# e+ l7 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
3 X3 A) `1 g+ V) Pcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit/ o" ]3 t  c4 d( c
$ u6 g4 i; |) ]" M$ p
  1. REPOS="$1"
    - D9 ^' F+ p% a7 s
  2. REV="$2"
    6 G! O# i$ h! d: x: w9 a: V" N
  3. TXN_NAME="$3"
    4 u0 E7 E" c* F) r
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    - e! y" i  L- n
  5. MESSAGE="$(svnlook log $REPOS)"
    5 f6 }% [  n' K
  6. SVN_PATH=/usr/bin/svn
    9 h$ g/ Y2 N$ ~4 v' ?
  7. WEB_PATH=/usr/share/nginx/html/ssyleo0 ?; W2 m8 f+ Y0 `9 U* n* \
  8. mkdir -p /var/log/svnlog; G7 q+ S* j" r' t
  9. touch /var/log/svnlog/ssyleo_update.log' m" W0 T7 n, J5 f$ k& S
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log3 X$ R7 L3 \( o5 T+ ~/ j$ v+ y3 R
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! \: w+ ], |' e+ j9 c, x6 g
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH2 ]! Y# K( O0 K+ z
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    5 j: S: Y) t$ v2 b" @3 C! f; j
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
7 L3 e& Q9 i# v. {" r- i+ ?

4 N6 e' P* w  d! e* \. K
  1. #!/bin/sh- x* K. d5 |6 n; f! Y8 ~6 D9 a
  2. #设定环境变量,如果没有设定可能会出现update报错
    8 K" @  N# B' f7 M1 {+ R; v4 d6 p
  3. export LANG=zh_CN.UTF-8
    3 C, w7 A! L- I* j0 B- k5 A( W5 _+ Z
  4. REPOS="$1"
    9 D# Y% n  `4 r3 \/ l
  5. REV="$2"
    0 s6 D% x' l4 s# l9 R. R
  6. SVN_PATH=/usr/bin/svn
    8 ?3 B% B5 W% _7 [  P2 S
  7. WEB_PATH=/web/project
    $ F8 D$ t" A% ], C7 ?6 W; `
  8. LOG_PATH=/tmp/svn_update.log( p: e3 E  M( v* z
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    - E, w2 ?4 \( s# D7 d" |% p
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH) A7 V3 m8 D$ r' i- d" a
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH% ]6 _/ _  u& N7 U1 P4 o0 o
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * Y8 o( j0 S- H* H$ J
  13. chown -R www:www $WEB_PATH
复制代码

4 I& d3 [' D. X5 b- W/ G3 s! u
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
8 j2 [$ K# D) t( c- yexport LAND="zh_CN.UTF-8"
2 m) n- _8 l0 q. x1 yREPOS="$1"+ J3 k* o1 t# q; ?, C4 O7 E
REV="$2"
8 g% i) C) M) D& {7 a& osvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; Q! ^- L' ~0 I$ S3 m2 S- |1 V
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
; a& w/ }* G( C+ ~1 g2 t

  1. 5 c  d9 s' e8 j8 U1 X( V
  2. #!/bin/sh$ ^6 e0 x; {& m# j+ p
  3. export LAND="zh_CN.UTF-8"
    - L2 }& u5 b2 m
  4. REPOS="$1"
    0 M+ [. I: d2 ~+ E
  5. REV="$2"5 e; H# N8 Z3 c0 o9 [3 I& o
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  n# v1 m2 s  |/ c& t
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
  a  H0 B* H, d9 }" i
  S/ O# }. `8 ~7 D% e% _! M
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 20:56 , Processed in 0.062075 second(s), 19 queries .

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