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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介$ d0 O3 S: x- I" P3 @8 _) P
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
4 w" {% w% m& K/ ]( e3 E1 x5 z  H1.准备工作/ b, }, @& _+ V& q' p$ v
一台centos7 服务器 一台 客户端& r: w; R/ [! N2 q# D
————————————————
0 V6 k2 T8 W% w1、验证是否安装了SVN
. m- h; C. ^# }7 k- q- a% x# {$ X  m2 u2 z
命令: # rpm -qa subversion$ A) f* w. |( i- u3 L

, d7 Q$ S( o0 P( B如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64# A! E* H8 x/ k/ _+ ]

2 s+ G: F  l" ?# i否则,空白9 m" P2 V' ~4 H3 W4 f# e

* H$ T- l4 Q) f  M. A6 ]2、安装SVN的命令
# y4 H* c" W) q3 [/ S
# \2 D" C" u& c% z& r: l# yum -y install subversion* L, p2 q3 r3 G) I# {

$ j8 _5 v/ y& R7 X接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录. M. V' P, ^, I/ J) p5 n, W
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
9 V+ U4 o4 l0 @3 S2 c+ W6 W$ i6 f2 K
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置; ~9 p5 Z6 Q! N$ m. ?1 \9 d

( z) e( h% B! H& s% j4 Esvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
+ P1 ]* O! P2 I/ i2 u% X
; k$ a, k/ ~1 D4 x
/ U! u" `- L/ ?3 O5 \8 n5 p& R3 b首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格! ^, \! J% p" v- u# q. n
3 d6 X4 ?$ n+ A+ O1 x
# password-db = passwd' h) A: j; E4 `8 R1 C
& z* c2 p$ m2 x: A
# authz-db = authz
/ D; S( g9 f/ \; }5 v4 W( B+ e' a- W- m0 J1 Y. ^# J3 H
. K0 }# C8 S  v1 Z1 P5 Y" }
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效0 o8 P7 U8 B8 L# M% i

4 O3 |% T. g4 [$ B* B登录名=密码5 J. P$ G/ K2 E6 E" r- Z
3 `" [3 Y7 I; A8 a  l3 o
user=1234567 U, h0 g+ g& j. ^/ ^

  x, y, [7 \. h- e% [- C) K9 ~6 W- v$ J# t# w* V
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
9 R1 l$ S9 x- J+ R; C$ K6 y
) h2 }) ~2 ^( H4 r0 s# * = r  f- a% C; X, G) V+ j, b

" e3 f! r8 U" T+ J[/]
" ^+ W( d8 b* N) D% w! q
! N. J. L: k4 {# H. M( y- W/ aroot=rw4 l7 r& J2 ~9 m) L! D
  p% X- |4 U; R* n! P4 S
这是用户的配置就完成了
: Y" V# X0 ?, V$ b6 H' M/ |
* O( T" k  i$ P0 Y- ?接下来我们就需要开启svn svnserve -d -r /home/svn/blog 9 E! v" `- o$ y3 k0 t" ^" b
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo7 ]- Y8 _1 U3 a

7 p5 W6 I3 ?9 b( g- P; [使用此命令开启svn 根据自己设置的目录自行更改
- f2 \# l  [1 U" S  }7 k  s6 Y4 o) f" x0 S( `7 t$ v# y$ [  f
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 T8 C9 W% m6 |3 Z0 U# W* f  S7 U% a* q5 c. F
1 ~8 c3 |/ w1 u$ [. t) G3 T+ u
win下载svn工具
9 U0 y4 U3 V& C; d4 j# Y0 i3 w! Q! N' d% b% X0 x+ T
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
1 f4 R3 R) H) N* `1 r
3 `' ]/ j* A. ~3 ?: ?* I) d/ ~' d8 Z
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
1 P+ v. T# C& x$ l2 O; ^  u1 Q输入你的svn地址 地址请根据自己的设置自行更改' g3 C& W' `3 G8 A$ u
9 F' u1 }! H; {. z
8 S1 Y0 U/ z* U* q" X
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了) Z& f% J- G1 |, {" m) Z' V6 w

  G# r! r8 m6 D
% n4 p! Y' B# N(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)0 C- C0 p) H2 M
, }8 u1 `: o. e/ e% P/ }

% I( z  L3 G6 w. n
' U" m0 ]  Y$ o! r- A# Y) ^可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
1 P5 U5 c  v3 {  T- N. Z7 w' E6 ^8 T8 {5 F: p! Y# h# t$ k; E5 l5 d
这时我们保存在版本库的代码就会被同步到网站根目录
9 S; K3 ?& h) {9 c' d$ a! h, |: U& @* K6 `1 g& H% A( ^

6 y% ~2 W) l* s2 ?
7 \( j1 ?3 L4 T! F3 \$ B# m$ \0 ^6 K+ T2 x3 o" }+ p

; R  `; k; ^: l4 k2 {! r+ i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录2 Y1 z- L$ s& x% \7 S
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
( d8 m6 R0 K/ ~7 p+ j" C% m
7 P" h5 Q& e! g9 e* r5 D( ^
  1. REPOS="$1"
    ; }( V) T1 f# ~& B
  2. REV="$2"
    0 s2 }( Q# \$ a9 ?6 `
  3. TXN_NAME="$3": p4 u5 U- A+ [( N! D# d9 ~
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    9 L: n) H+ h, c8 z
  5. MESSAGE="$(svnlook log $REPOS)"( X- O- T' r) c5 [! l- l
  6. SVN_PATH=/usr/bin/svn5 }8 S3 u7 C4 l; ]
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    # Y7 _: G/ G5 ]7 G6 e, C, T' X
  8. mkdir -p /var/log/svnlog6 W0 h! m0 ^. N( Z5 K+ {
  9. touch /var/log/svnlog/ssyleo_update.log
    9 e# ~- l' Y. I' E
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    6 w; `$ R% ?# \9 u8 v& D' c. }
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH( s( t! d4 W0 l$ L' R
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH! q  e& X" }+ {
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH, G/ F; ?4 W5 T
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
: h  H7 l& u* ?4 o& J" ?

( I; t7 |; `2 ^, ?+ \
  1. #!/bin/sh4 ?8 N8 {# b0 U- ]
  2. #设定环境变量,如果没有设定可能会出现update报错, o; }/ K: f. f. Q( Q: s
  3. export LANG=zh_CN.UTF-8
    2 c! M2 j( J* }; o
  4. REPOS="$1"8 ]! `2 J0 o' t! S1 b# C; W7 G
  5. REV="$2"0 s8 x6 u* a; v4 {7 E
  6. SVN_PATH=/usr/bin/svn
    7 [( j  S" q6 d* \7 }- y
  7. WEB_PATH=/web/project
    5 N' G0 V. ^7 A( L
  8. LOG_PATH=/tmp/svn_update.log$ C1 t# i+ f0 z9 C$ M3 p' Y9 s% Q
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    # G4 u- h8 k' X, x# c; z& v
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ' T: [. e. B' N) w
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH5 H- ^7 U# O0 C1 N8 A* Y
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    5 d4 V- ~. \0 h6 p
  13. chown -R www:www $WEB_PATH
复制代码
) W; o) A# D& m/ L% i+ i- I& K! _
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh) S6 ?% T+ r8 T1 [* P
export LAND="zh_CN.UTF-8"
& W! X- q# g+ z/ z* b3 O- MREPOS="$1"
. k: p; B! r8 HREV="$2"
) t2 N4 z, l8 G5 v& Z6 Ysvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache6 m/ U1 o: F1 j4 L- q
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( C  M6 c+ t1 }

  1. , `. I/ Y% M7 Z5 p) y! t  f
  2. #!/bin/sh
    0 {7 I5 e/ M& k6 T3 R' s
  3. export LAND="zh_CN.UTF-8"
    5 z7 G# E* ?* T  F/ S0 F
  4. REPOS="$1"
    ; T4 k( d. Y( o
  5. REV="$2"
    3 D3 D. H, c3 `; P' q+ B
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    7 |0 v: e  ^) e: \6 s
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
9 _7 N2 G$ x  W! @! Q3 D
( A1 m8 R, p7 V# f
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:36 , Processed in 0.053087 second(s), 18 queries .

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