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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
8 \+ k2 c/ e7 M7 _1 i  l* PSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
; X9 S; p( k( O# ~4 {1.准备工作0 U* g8 D$ c' G" |" s: q4 N
一台centos7 服务器 一台 客户端
$ J2 y, F0 }3 Y5 q3 E% A/ F————————————————, q9 D  E! w  }& f6 z4 d' Y
1、验证是否安装了SVN
. j. |* K2 k) b' J7 ~
# c" P7 O0 p7 H' F. P命令: # rpm -qa subversion: y8 T9 V- L) L% ?

' U1 R6 L# R7 A1 A$ }' Y如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64- y1 }3 Q6 n+ X7 `, ?
: x: U$ q- B7 C6 U& f
否则,空白
% \% z9 S2 d  k/ ?# o: F4 B" ^1 M  y$ E& i* i
2、安装SVN的命令7 ]& ]2 r& }( ]" h1 S! H

1 y+ v! d9 H6 ?- c' ]) ~# yum -y install subversion
/ g3 j6 _( v$ y/ o( D6 d- ]
: S$ n* @' j1 I8 a, i接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录+ n& R9 A3 {: |7 Q9 a  ?3 u
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
0 n- l! P$ f: X+ ?+ f
$ W/ w5 L% p4 |; C然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
* Q( |. K. Z7 i( |7 T& n2 z- E9 ?! q
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
! R/ V1 K! n& y. m/ \) A% H
5 l: h8 ^. J0 U+ ?$ y; C# E5 t) t% t
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
: h5 F. k7 l$ q" |+ V. Z4 ^2 ~* s) c- J. i& l* E& y  y
# password-db = passwd' Z# D$ k- O: R0 s8 g* B, u
) E% E- m7 l7 @# c6 r( }
# authz-db = authz
: I" p+ t: D) w6 k, R$ @' k; V* S' @
8 j: N( D. M0 f2 {7 v$ `
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ N) S7 }% J' ~+ R8 W' Z0 T4 q
  W# Y! \7 o% `9 z* l% P# g% L
登录名=密码
1 M* v9 R: g( ?" e! ?* M' n) d( O' J- G% X
user=123456- ]' w4 b' j3 B( `8 G+ ]+ M
% T( G6 i  E: y6 C! b$ x8 a

  E. q4 O- q8 _5 w最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
; s% k" c$ ]$ O* y5 ?/ u* U
, D/ K+ o+ {' S, |4 d# * = r1 B, H4 G  {( M* x. ]
! v# o2 o( \5 w' H. v' F
[/]* g% R: s. W/ K0 z* a

; a; o& y& B  Q" L1 rroot=rw6 E: t+ ?" A! Y, \) Y" O% v
  l2 N4 N9 q- M+ x+ {. ~! `
这是用户的配置就完成了
1 U1 t' V# w; y
7 W3 L' @3 N4 G( t' A接下来我们就需要开启svn svnserve -d -r /home/svn/blog ' h, }* Y9 P5 t4 M5 o
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
; p8 g# Q5 b5 }" F
" x! _0 [7 E# Q! w/ C9 {使用此命令开启svn 根据自己设置的目录自行更改+ ^/ [, A. @5 w5 O4 H. |

( b' q5 G8 j# n1 L  N, z使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了7 s+ Q/ ]" d* M1 B* G
8 u4 [. q; q& g2 s/ j
6 j+ K0 W1 h/ A1 l# o/ A
win下载svn工具
% Q0 v4 N$ L$ G* o: O  \: X" L- K  y" B- h* [* g, P  i, k$ Q
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- j( D- P% I% n3 |! k

2 V9 ^8 t) g: c9 V7 w7 s- J8 N3 {& x3 F9 S
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
4 M, H3 P( @, u; y9 o7 t! M# Y; U输入你的svn地址 地址请根据自己的设置自行更改0 }) T# z1 ^3 o7 z. r& Q9 o- y
8 p* W. N' C* G( N  x; q
- N0 B, b/ E6 z
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
: p) G, D) G. z6 g. a) I4 }
8 p" X" ]! s+ \7 ~, Z0 q- i, U- i% H, k# p) S% F" F$ T- T+ k- `
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)0 D( N" u! B1 i/ }/ @

6 k3 I- A( B' p+ g( F$ Q) y& n/ v2 T9 a

( d' y9 K& A" c5 J7 Y. c) Q可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存# `3 F& h: Z) g1 K

. `6 s0 Q  C/ {  G9 U4 K这时我们保存在版本库的代码就会被同步到网站根目录( v/ ^8 U4 {% \9 _

' {  \; Q$ G$ }0 u; P' T5 ?4 L# x9 v5 Z2 ]  k: @

1 S$ A  y& f% S4 b
. X! Z' B6 l1 }/ n) t: ~  V' {7 b! f% ~+ w6 J! b- `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
5 e, r8 u# C& e# _5 Ccp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
) E. h8 j4 {( ?& a* T. v! A
+ K3 _# x: S; t! G+ ?
  1. REPOS="$1"- J: X& L- C/ o  F
  2. REV="$2": D' ~2 p, u0 T
  3. TXN_NAME="$3"
    ) T* w: K. ^6 g
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    : j7 t4 \# a* B6 ~! n) T2 C. D
  5. MESSAGE="$(svnlook log $REPOS)": K4 [4 |% a- X* c- m5 X) n
  6. SVN_PATH=/usr/bin/svn- ^+ U* F$ f* s5 _5 p' k3 }
  7. WEB_PATH=/usr/share/nginx/html/ssyleo5 N. B9 I  `$ J7 q, @4 g
  8. mkdir -p /var/log/svnlog0 X* R) O! y: `- Z* v) S
  9. touch /var/log/svnlog/ssyleo_update.log
    8 C$ ^6 D$ t! n$ }
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ( w8 n( O1 s; x: G9 p1 W
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    + u3 s0 C* D% s, V6 _
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH1 q$ E- d" W; T% r' q+ E* i
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH: o) x" v9 ^. Z
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

9 V/ z" V8 i  Z9 f, }7 W" V' x/ D- n. I  o: X5 l5 @0 ]; S
  1. #!/bin/sh
    9 k/ K% z3 P' B! u4 R: t
  2. #设定环境变量,如果没有设定可能会出现update报错
      S$ j, f- f  s1 R
  3. export LANG=zh_CN.UTF-8. P" Z3 D4 ?3 R  w' e
  4. REPOS="$1"+ f: O. J, D" J  ?1 ]0 p. E
  5. REV="$2": v6 M: q# k' G: n* ~3 W
  6. SVN_PATH=/usr/bin/svn
    ! B8 r( ?# t' h9 S& p9 c6 b- u
  7. WEB_PATH=/web/project9 y) _8 g9 E9 E
  8. LOG_PATH=/tmp/svn_update.log; d! R7 x+ R8 ?
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    , M" r& R% ]$ _) v
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    4 @9 x$ ]1 r& E( l
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    , F' a2 A& O9 @8 y3 U
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ; z; s# {8 f+ p, X5 {. [
  13. chown -R www:www $WEB_PATH
复制代码

0 R3 x$ @7 F) u% a& v0 P, M& S! A3 j9 L
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh' {" Z2 @6 U' X4 O$ j/ |
export LAND="zh_CN.UTF-8"/ E; }( b7 Z8 v' L* x9 O4 a
REPOS="$1"
* \1 k! j0 m$ pREV="$2"& J6 r- t5 `3 e- S9 c
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache. n$ P% N- K2 _: B' [
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% q! b6 E3 G3 U
  1. 9 y9 Y1 o& J; P$ k; T/ g' p6 I6 f. q
  2. #!/bin/sh$ w# r4 N2 S3 ]( D
  3. export LAND="zh_CN.UTF-8"" X6 ~0 ]: ~; `: E
  4. REPOS="$1"
    * f0 P6 _( w7 g- L6 z$ k
  5. REV="$2"' p- w+ M7 p' M$ D
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( l* M- u7 H- M1 X( Y# K% ^4 a
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
8 e' o! ~' w, Q# q) {+ l

: _" k& W" C: f+ U2 y* m
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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