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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介+ {; V. l8 l/ W, O
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
$ x( T7 l7 K' {1 G- ?) U0 l, m1.准备工作
$ E0 f- A& A" t一台centos7 服务器 一台 客户端2 q1 I4 m& I2 d
————————————————
% U9 G/ f  c+ X: G  ~$ q- G& p1、验证是否安装了SVN) v5 P2 ^" a9 C1 E4 N! Z) K
- ~# `' p6 j4 q& c% H, q/ Q
命令: # rpm -qa subversion
; }% Q0 q6 w2 ~8 ]4 T# A6 n5 v5 G# e" n# E( Z5 b1 P4 Q2 G
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
' x3 `; \3 M. C: {% U2 V/ M3 \5 _- `, R$ I& ~
否则,空白: W- \+ C  D. `7 q1 g
  i5 T, i+ M* p% \* w3 G
2、安装SVN的命令
+ w9 M$ M* A$ r" ^3 x; I1 |* q
# yum -y install subversion
, m# E  {' D0 Z! Q
% H8 A; j& l% H: ~9 M" P7 y接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录- @1 m$ x0 ~; W- v9 Q
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
. B7 a1 q0 C) L, ?; R# |
1 W9 K/ t% c# f然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置8 t( z' s* H& m( u( w' P1 [# ?2 k
: n3 p: V7 t- d$ l, P( G
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)& p2 {( x" g) p. I: U

0 E* ~2 m- L. E7 t
8 r6 q7 R/ J5 h8 l; D首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格1 }; L# D% t2 ]$ V
/ [$ G& @  P& U) _+ M1 D
# password-db = passwd- r! @  b/ [0 A& F' q7 m$ @

* N; s$ k! t( T- t# Y# authz-db = authz$ ^" w# c# i  z9 x: V* }; |6 r9 w2 y4 l

5 B) A. H5 w" D+ I' q: F! w- M# N! N. U
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效( p+ q$ n9 J5 e5 |! q

2 f& |) O, w) s9 s! G登录名=密码2 M* O" k8 H7 ^2 A
% Q, [6 l/ ^  N7 F
user=123456
2 n; Q& f* P1 }( W7 L3 q- }6 H
: Q' U* \: B# i& H9 P: I
3 X) z/ _3 {+ o, e% M最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
6 J8 Z. h: t6 }
+ ?) I' ?7 q' V3 s# * = r9 C1 i6 u6 S2 f( y+ N. E6 B

1 G! g, ]: j' y. r9 V[/]; Y; j4 D* w& x* z% Z+ l
: U! ]( w$ ^* e0 I
root=rw
: u; ]6 C  H. Z7 F0 ^6 h2 a
2 b4 F) m8 ]# p  H0 V% u3 _4 f. Z这是用户的配置就完成了8 O1 A: d/ s3 |9 E8 @# ~8 f

% k3 f! N8 q! f5 ]接下来我们就需要开启svn svnserve -d -r /home/svn/blog 6 v% g6 s# U# @
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo2 j4 v' w& O# J. t% O

. L) G- Y& w7 v3 {' g- q使用此命令开启svn 根据自己设置的目录自行更改8 C" p0 A9 _4 t! ?
0 n$ G9 Q! ^3 g6 m3 C1 V; M
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
5 \# ?! Q3 B1 g; K# h7 T
# D" I$ _4 a; s& h% J% Y$ r! T: r1 k
7 D, \9 m* x+ r7 h8 jwin下载svn工具
! U# N5 ]# A/ x/ R! \( w5 P* S
5 z& s7 o$ H) C! m接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
7 j1 v+ j6 K2 d$ F; S2 y, F
: N- A  R2 ~- _+ M2 K
2 _4 C0 f: A" B7 j5 {0 }1 ~* \重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码- i) c4 X4 j9 k; H; e; {
输入你的svn地址 地址请根据自己的设置自行更改
5 |6 G; v' U7 s* D' U3 ^4 y( T
* b; I! [6 `) \( C! C
4 {5 p7 h- w) d/ W* R+ J7 v然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
* G5 O* e" I, g1 O: s! ?  i' {
0 N- ^; ~2 e' Z0 R# J% [3 a
4 D7 f, y) D: P3 Q! S(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
# l0 x! y1 U5 z9 k3 {" R8 I7 O8 u( A4 Y# i

3 x8 ~" E2 Q( s; p0 Y
/ X) _' D2 _1 [, q* V% `可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
3 Q3 V4 E( [6 W5 e5 B
: |- Z" ]6 B2 W7 Q# m+ v这时我们保存在版本库的代码就会被同步到网站根目录
! M# e- `) Q: v9 A1 ]/ v
- K& k8 r  x+ a, U
  E3 v7 L; N+ k
: [2 D- q3 V3 J* z1 k+ d9 R  L+ d, D( t" \( }# x
- [( g; U- u  m3 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
8 ^" e; j' q4 S/ `/ scp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit* @, z5 G$ m2 r# S& Q& z
- j( w# u7 S+ b6 r0 N# ?1 A8 C' P
  1. REPOS="$1"
      |) ]( _! G# n) @8 o
  2. REV="$2"
      K$ z- L0 F( ]( F- M. h$ `
  3. TXN_NAME="$3"
    9 }5 K$ J" v$ Q. _9 X
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    - J  b$ `4 a- \3 ]$ V) |& d
  5. MESSAGE="$(svnlook log $REPOS)"
    5 k. x( j0 Y" f2 b4 x. f6 {
  6. SVN_PATH=/usr/bin/svn
    7 ]  M2 B; M) E2 h; v. ]0 s$ }6 ?# q
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    ! F1 A7 L$ m! h$ `' i- t6 A
  8. mkdir -p /var/log/svnlog" t5 k" e/ m& U: z: w
  9. touch /var/log/svnlog/ssyleo_update.log
    7 h1 O) ^. N1 T" p: l: [, z$ o4 {
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    0 \7 y7 O: o8 w# C9 ]8 e
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    8 a* c; c2 K9 ~2 b
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH( ?5 c/ A- q0 q' C; W/ a! {5 B
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    % t* V+ @/ i8 C: @0 ?# k6 K# u
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
3 |. Y3 v1 T' n
3 Q6 T; l7 g% X4 L% v- [7 r1 M6 Y
  1. #!/bin/sh
    ' C1 x( F- F2 `3 g
  2. #设定环境变量,如果没有设定可能会出现update报错
    , L6 P0 f7 f- R5 i- p5 u3 r
  3. export LANG=zh_CN.UTF-8
    " R2 a3 A/ |2 d' j/ _8 i9 _
  4. REPOS="$1". _0 j# M6 x  |. i* L# }
  5. REV="$2"1 z/ K7 k' G% I, \; ~9 P3 y
  6. SVN_PATH=/usr/bin/svn
    . }3 J. W, R! G' ~9 G9 Y4 h. N
  7. WEB_PATH=/web/project
    . N/ S5 c9 z$ S) t+ m. W; {9 y
  8. LOG_PATH=/tmp/svn_update.log
    * x4 L( T/ W7 @& N4 z. ?- M- k
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache, Q# e7 U6 I6 y
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH' U  H* p4 w7 s# P! E9 e) B% J
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    - h7 J( X; Y# ^+ A, p0 S1 H
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    1 L7 M. o6 y/ q( o! J
  13. chown -R www:www $WEB_PATH
复制代码
: |( D. l$ l) u, v( F
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
7 b2 _0 x$ _: Z1 Z$ Pexport LAND="zh_CN.UTF-8". h; t6 r2 e- E0 d% |8 S1 w
REPOS="$1"$ ?0 e* T' ~* s" Q
REV="$2"7 p: o) R0 w$ ~& e' ~- u3 `! b+ _3 Y
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache4 E8 Z: h  v' B' e* ?
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" N9 o6 r& a# U: _: o

  1. * m" f2 a* ?- y3 X* {  s
  2. #!/bin/sh
    " o* c* l( A6 ?
  3. export LAND="zh_CN.UTF-8"+ K; v# D/ ?, j3 J; }
  4. REPOS="$1"& N2 @0 s- f" x  G
  5. REV="$2"+ ^; j+ A' o( S& [& v( E8 d
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    7 [4 A7 i- i0 |) B& G
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: |! \& d, [( O* B
2 n% X$ u# L$ \* D' d' `" Y, Q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 13:03 , Processed in 0.055173 second(s), 18 queries .

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