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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介: L6 a+ f0 P+ W
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)* K7 z8 }8 P& Q+ z6 Q
1.准备工作
. c8 D( d; G# q9 P% S$ c一台centos7 服务器 一台 客户端
& I( E& h* y& v$ \: Q) K' R* n5 N————————————————
2 m/ R  n: S/ c# y& u/ y% ^1、验证是否安装了SVN
- R; p$ A# N) }5 s9 Y/ [: s" m! i, s; N
命令: # rpm -qa subversion. D6 T% z3 ~! o

- m! j2 M# K, e4 v/ a) e7 I3 K如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_642 a1 T2 h! a' |5 T0 \- p7 a3 i

/ D* z+ u+ v8 l; z( ]否则,空白7 N0 {* z* V# W2 N, I

3 K5 \! Y# U5 K  G$ z2、安装SVN的命令
4 a8 ^7 J' f; |* A1 Z: M
) t+ C+ N; ?5 x, T0 S# yum -y install subversion) {- I5 v* T. H9 ^* ?- e" {

2 ~& f- {: J# {  J: q+ z* o9 Y8 m接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
  j) z# A  \$ q* o3 w5 m创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
5 c( Z% M/ X* \( ?/ |$ e  J. q# t' h
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
, V0 M  J( ?* Q7 ^( v2 n, e1 c( g
3 b0 V6 T5 W! osvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
* ]9 r' k7 F- \; M4 A8 ^5 N/ u2 t3 h  y/ S# _& A9 Q; f# ~! A

, ~  l& w% b& ]0 L0 w6 j) G2 r( R首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格9 ]  d! v" g% k$ s. `
, d' l0 \8 ?4 [: c; C; B
# password-db = passwd
/ K* c+ P1 b" J
$ F: s  V8 R& v2 R# authz-db = authz# S2 ]7 n( _3 c: |7 H0 w
& @  Y7 d) l! ~7 t" H, n* R

: A1 X% r8 i; X0 K, u6 q3 d然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效% S* A7 G& B; n+ M( `: w

( N8 U! i" W9 \# L; d! n% C登录名=密码
: N! E& U! s. h
- c+ |; F  D2 g* cuser=123456
0 }8 q7 c" |0 n2 Z# I# A
( @& Q( `5 g/ e1 r) X
+ F/ L- b" h0 K3 h最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)9 |3 q. I; q+ B: F0 ~' Z, a
4 k5 b4 }+ {8 A% T9 f
# * = r
8 h, g; a9 ^) H9 c7 c! u1 S5 t
4 y$ \2 L8 L9 `; o) P, H# r5 g[/]5 v$ h- \: {1 Q

; e7 w0 j4 e; V! croot=rw
% o6 t% _  o$ _" |1 e( a2 y( P8 B
这是用户的配置就完成了# q- p- |8 q! ^* e' y
4 L( T3 M# u5 h5 q4 u8 H% F& B: E8 q
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
" C5 a. x9 U$ F- W6 y5 ]7 G" F* ^svnserve -d --listen-prot 端口 -r /data/svn/ssyleo  d9 h/ ]7 h9 u, v9 m# H

" l* t/ e: ~9 H4 r* D: R使用此命令开启svn 根据自己设置的目录自行更改+ X+ @1 f5 B, k" ~

8 u* U' }. O2 q; p/ B2 c% n, v使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了6 @! C9 |/ b4 t6 y+ O

9 T  j" n2 k5 y9 h" x
. `  X. g9 R+ z2 l, L6 q0 Q8 R9 x6 o8 `win下载svn工具5 Q9 M$ V5 ?, j2 f
& f- B/ X3 b& W; ~4 Q1 j8 T8 y3 j6 A; T
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
. R: S0 T0 s! X0 m. s3 Q4 R8 Z# j) o; f. K! s

% C  m# Y! V0 |, p+ E9 K, a; T重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
; {+ ]" C+ L) o( a4 U# [输入你的svn地址 地址请根据自己的设置自行更改2 N# a' d* q! D7 p3 p, {

0 Q3 c) e6 m2 d& `7 N) a. P1 b( j: y9 j, U3 ^! H
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
! ^5 S: J# S  \$ {4 b
/ U# O2 K5 A7 w6 T5 X
7 z' W9 Y/ I; a: t/ T7 F) R$ G(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
5 B- P6 H: a4 v9 Q" r
" j- n; D' c# T' w4 c. W4 v. E+ Z+ V, _  c- ~! T% [
! X4 a& }$ {) Y+ f: B
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
; d" F+ C/ N: x2 g% K- o- M$ f
' s4 L) r1 P  v1 i这时我们保存在版本库的代码就会被同步到网站根目录6 T! k4 d. O: c6 q8 x: F" k
/ _* k( W: L+ k: j" d: k
) r" d+ B/ j. S) o, o# X
2 S# g4 n# P( q" C

1 o2 o7 G; Q8 |
- e( |5 P  e; W9 I5 G- g& D1 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
+ A% r# Z! e: L. [# ecp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit  ]* a$ T$ c2 u7 m
% Q& K9 A) q. ^9 z$ K- `% Z
  1. REPOS="$1"- b  @$ |) j1 q' g( i
  2. REV="$2"
    0 q- m. Z: n9 \
  3. TXN_NAME="$3". w: n" u7 f% M
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    8 p& d! o; C# N7 O7 Q
  5. MESSAGE="$(svnlook log $REPOS)"0 C# Q6 ]7 }7 `+ A5 j- I
  6. SVN_PATH=/usr/bin/svn# p' P; Q6 k6 q9 J3 M9 e; M7 k" E
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    0 ]% E; T/ W: G4 Q0 A
  8. mkdir -p /var/log/svnlog) g. K. x  G: i1 ~2 C6 U. z8 ~
  9. touch /var/log/svnlog/ssyleo_update.log: w% J; w& H; p% U3 D/ l
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    8 E4 d3 e' j$ j. q! B
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    . m% i3 q: U' _, A
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    - }7 m) i. U8 [# u3 U
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH! [  F5 Q' `/ U) g4 m  J& O6 L' A
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

' Q6 W) \! R* I- z2 v9 ?2 V2 y: x) S, Z* H. F1 h% P3 g
  1. #!/bin/sh
      d+ A9 }* X8 u& X2 G5 \% |% ^" R
  2. #设定环境变量,如果没有设定可能会出现update报错% D1 x- u8 n; J, s  W2 T4 y" u6 k
  3. export LANG=zh_CN.UTF-8
    . O1 U9 N9 G+ E0 O6 K& B
  4. REPOS="$1"
    * i. L) x: v, D* K- Q7 ]8 z0 p
  5. REV="$2"
    " J' A6 h& j* t
  6. SVN_PATH=/usr/bin/svn+ r# |" R6 ]2 h6 `' M) {  e6 Z
  7. WEB_PATH=/web/project# r# m9 f$ k) E6 g2 j, T0 T
  8. LOG_PATH=/tmp/svn_update.log
    ) ?" n: P  }; W- l" v& V( e( [
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache7 W3 A& ?7 w! V) m. R9 Q
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ' k" n. R  [- C6 F" }" T! }
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH1 F; {# ^( m! K9 _  g; F$ b
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH' ^; c2 ~1 o7 J% F1 z9 u
  13. chown -R www:www $WEB_PATH
复制代码
8 G+ H3 u# A6 Y" j8 \- i
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh( ~6 _# t4 `4 x! `
export LAND="zh_CN.UTF-8". c' f2 X1 ?/ H1 u3 M
REPOS="$1"1 C! S( P& n% ?) J
REV="$2"# M8 t# p, z/ i8 w7 W/ w% v0 k2 z
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* {% g9 S' {9 F7 k" ^8 O$ rsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" y1 \0 H% F# p! k0 j8 U

  1. 4 ^" k; q3 |, W$ f. |# ?
  2. #!/bin/sh
    7 O+ u6 Q4 Y; L( [8 J" F( A$ G3 M
  3. export LAND="zh_CN.UTF-8"9 N$ U- V5 e( ~! w
  4. REPOS="$1"
    ( D; s8 C8 x4 p) c- V. Z& ^
  5. REV="$2"
    ! z! V& J! Q1 D6 r8 U
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache2 m1 p- ]' p9 d0 D+ q8 l& z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
( N5 n4 j: Q. Y/ C' k2 J

- F2 B" V& c# b- p& \8 P7 A; z: r
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 00:59 , Processed in 0.128627 second(s), 18 queries .

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