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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介. N- |8 b9 a% x& v4 y
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)8 ?; y3 m. x% I8 d* b4 U# |+ M: `
1.准备工作# z; a' X& K2 c1 q3 Y3 ?
一台centos7 服务器 一台 客户端9 K; r. G/ j& t2 C3 N* d
————————————————- E, ]# d  [- D! r' I1 v; M9 _* {0 c
1、验证是否安装了SVN
' _, m+ d: O7 }# }) h8 g5 c
$ A) D" ~) u" ^命令: # rpm -qa subversion1 T$ D$ W  b1 x9 z

& M' U9 @6 I0 y! s' g: Q如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
" c  q0 @% P& b- F& b, P4 t5 ]
( z' B, A9 ?6 @! f否则,空白& W* h% j: o# G3 V2 Y8 _
! B/ @$ b" x' L
2、安装SVN的命令
0 l% y1 W( F* _5 v, X; L4 w4 o) B- S; a' t3 Y" r
# yum -y install subversion
4 p5 m% {& y" G5 V
, ]7 V% j+ \& [" B( B& T7 \! b' U接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
! p2 B) _% T6 M  p& C创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
( m8 `# ?% Q2 D. O9 H4 V0 @
# l/ I1 h# }* G% z& Z+ a然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置# U8 r2 h2 ?; u: B& h
/ y' U% y5 m' j: l+ n, v: n
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)* [2 t2 `# Z' O) w1 n

& l. r% C. h3 C
6 y- U# z9 H" M) ?2 i+ U' g3 ~首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
6 J& V1 s0 E- y+ d( E( r0 P* s" ?( B3 w) c: x3 D1 f* E
# password-db = passwd
  I' X' M. ]" H6 D1 R, ?) @. x. {$ T- B& [' P; N" a# b
# authz-db = authz" y3 C7 {  _; G! w9 g, F1 g9 q2 g
0 E( g3 `3 p. e2 R9 y

  r! U9 D/ E- ]3 G7 Y然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效2 t7 F1 @) v% M2 h
  r5 L# I: m( P, g
登录名=密码
6 }" N, {5 d$ X/ K
. U) x0 j% p8 @* N8 s( Wuser=123456; r" c2 z% W: j& g3 t2 p

6 L1 F& y2 q! G
. o9 F, ^5 {6 a* A( d- K2 h, ^最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
" U, \) ?- O( z4 B" u0 u; ^
- {6 N4 C, y7 @( ~2 W( z* }# * = r% s& b4 J  C, `& |; V/ S3 W2 t4 n
" e- X4 f- H- E- Y& O. W" e
[/]
  m* S+ F3 L! y3 l; y& z' s1 w5 \/ W5 {0 h  e9 `- C( J! X
root=rw: A9 O: M( i- [+ T. j, K& w
. g1 Z# }8 X7 S( p: A1 L
这是用户的配置就完成了( i/ E3 Z4 b0 X# I" \0 f0 T; H# a

& G9 x  e- w9 u6 }接下来我们就需要开启svn svnserve -d -r /home/svn/blog
6 q9 u( [( |: j% l$ psvnserve -d --listen-prot 端口 -r /data/svn/ssyleo. a8 v" L& @! ^. j5 P7 }2 s0 F
/ C; b; J; l. E, I* _3 P4 s
使用此命令开启svn 根据自己设置的目录自行更改/ |" ]; o) c- l( X
. v, Z. p) F. K3 R& g  ~
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
$ Q* y# ~) B4 H2 V" k; `% F" o
( N5 f0 ^- m+ e# \* Z5 D9 b6 x3 `7 m9 l/ R
win下载svn工具
2 j. i6 L! ~- G* g! c9 L
$ o7 b1 A4 t" e0 D- ?4 }4 }  l接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了! k* u4 S  S9 |$ I9 F
$ L' g( p4 i/ r( F' h, T

) |$ b1 q( C; i& ~& ^重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 s4 l) ^& G9 s
输入你的svn地址 地址请根据自己的设置自行更改. @/ g1 D% p3 T" s
' a& E9 O  d5 j" |& l

% y3 C0 D' ~* O: Q# Z( z0 H然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
6 ]. ^5 ~& V- L" }! k
2 a( |* h- q% Q, o- `) c$ v  S  n" J
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
& q' z. i6 N6 h) r* C. H+ P
  T& K+ [! g. @/ o+ Y3 h' n8 v( r% P" p/ w
" z5 O7 e+ @! o3 |* T
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
7 D: Z& B) X5 a( B/ V2 }/ F1 v
6 A- L2 N6 n7 G. }4 b. G( M) m: A& K这时我们保存在版本库的代码就会被同步到网站根目录0 r2 o  K! j$ k0 V, k. r! w7 w
3 f0 x$ C2 d" e: y4 v0 G
. }- T; @. g: {8 `

: r/ U: ]' h# k! h
, a  C& S: B. S5 d0 f; B' \
0 a2 J  B  E# Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录' o, F! }. [% a$ L
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit0 P6 ^1 b1 U6 L6 A: ^) {+ A

) g  Z: @, L6 |! @' U+ i+ G" n1 n8 P
  1. REPOS="$1"
    ! H- ~; P  V/ L9 Q9 F- {& q  R, I4 ~
  2. REV="$2"
    0 A& }5 I4 r; A
  3. TXN_NAME="$3"
    ( k, m) D+ b( T! ~: r* X2 E3 Q
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"1 f9 m0 }4 E: n0 h( t
  5. MESSAGE="$(svnlook log $REPOS)"' j$ P- G( p( n4 T- A  N- h
  6. SVN_PATH=/usr/bin/svn6 ?* S. k2 w+ P- q7 K; J
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
      M/ L3 V& |( o( b) J  K
  8. mkdir -p /var/log/svnlog
    : s; f/ r' c8 e; S# j) }+ F
  9. touch /var/log/svnlog/ssyleo_update.log
    1 X2 F& J" E/ b- |+ u
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
      E2 e9 `/ ?' |4 K, I$ W: m
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH9 Y5 B' v5 A! b: ~
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  F& m8 X1 }" s# f8 ~4 `2 s0 O$ I. o
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ( {9 M5 f# \& ]& A
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
9 n, z' m, g3 Y9 e1 X7 r
$ d- \( x. @1 q, U
  1. #!/bin/sh& _0 h5 g7 u" y0 _: T
  2. #设定环境变量,如果没有设定可能会出现update报错8 ?) L* H0 w3 H, _3 i, ?. d( ?# k
  3. export LANG=zh_CN.UTF-8
    4 Z# S; C1 N' o* l
  4. REPOS="$1"
    1 m8 h: C$ C9 R6 ^0 |4 V* }9 u: K+ t
  5. REV="$2"3 h. M1 \; G9 @+ a4 C
  6. SVN_PATH=/usr/bin/svn; r8 y) x, ]1 D; g4 C: n
  7. WEB_PATH=/web/project
    4 d4 e3 z4 d* I: [+ ^
  8. LOG_PATH=/tmp/svn_update.log
    ' a4 w1 `$ P' Q* v1 I
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache/ i7 C2 R' e3 k- N
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    0 R1 w7 ?2 I! d2 _- i, N6 x9 A
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH$ x# g. U4 H& Q2 b$ E: w: ^8 K" H
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH+ h5 n  I- k2 s7 H
  13. chown -R www:www $WEB_PATH
复制代码

( ~; D! p* A$ p( n, }2 u5 A* h
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
. W. @" h' v5 x5 \1 t) X& W7 @! B3 rexport LAND="zh_CN.UTF-8"1 o" x" A* n' @  ^) w( N
REPOS="$1"
8 X# M* ?- j7 H! |REV="$2"
+ A" \7 f$ \  R1 k. a7 zsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
& y8 [" p1 Y' P4 Esvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 K% ~. V! i" V0 p: `

  1. / W8 C" z. |( v# l% B- I" |: a
  2. #!/bin/sh
    , |/ C2 F7 N) Y8 V
  3. export LAND="zh_CN.UTF-8"
    9 c  @0 \; S: P6 O" K  }& O4 `* l
  4. REPOS="$1"
    " X& _% x3 I' a4 M
  5. REV="$2"
    " e' F8 p0 j6 d. c
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    + G0 H( m! `" ~* `3 Q  Y5 A
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

( n/ W7 q* R- I
0 t- Y; `( r( e# v
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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