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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介9 ]' b7 p4 t5 ~' Q' D* r
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)) ]% |$ S1 j8 |. {7 e9 B
1.准备工作
5 v4 y+ ^% _  Q) D一台centos7 服务器 一台 客户端
! [. t* }: b; v# o( b————————————————% V0 q3 O2 Z( j
1、验证是否安装了SVN
( S# f7 ?& P# f$ ]  H! |3 I# ~7 C% Q0 u6 n- g& ~& l* H
命令: # rpm -qa subversion& A- f- A4 C, [3 W7 x4 J+ o2 _

6 F) D" i2 v+ \& j0 n; j' ^如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
" h& i5 P8 y. k( K" P
- ^6 X! e: N$ c否则,空白
5 ?2 J2 _9 C1 t6 n: _: q! G' T8 I7 K# S* V  u/ Z# N
2、安装SVN的命令
2 c, i# W; M+ `. _% P  M( G/ }( E: c; e& e
# yum -y install subversion' B* K1 y  ?9 I

6 j3 a; p. d* I' ]% n接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& |, f1 \* G9 m1 `* e/ T: b8 g# c4 T) v创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
6 C* w0 p4 r  G2 W; ^
$ o+ _* g1 C: q$ ^: i然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置7 Q3 M! b+ F  G5 c6 w; m* T

7 ~6 Y4 D/ |; D- ^* osvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)3 L$ ^- c* e% b$ H. O5 O
8 ]  v6 u1 ^9 ^0 C9 Z/ A

4 {7 l& Q7 d( B/ Y首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
# m3 z" |9 ~7 Z* m9 C- S9 Y/ F5 x, n( l4 I# Q! U% c6 o4 e  o
# password-db = passwd+ \# I% V, }$ ~) i& a, v8 Q+ @% N

" Z$ R& a6 K4 ~2 A- y# authz-db = authz
6 K" m  k8 |/ n6 m5 A) t5 p# K: ]/ |7 C6 t2 c8 j2 H% |" c

7 a0 b0 R5 W6 c4 _3 k1 q5 ~3 @然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
# ~( |% |( L4 Z
) W1 p/ V  v7 {登录名=密码
7 q* {* h" A; c2 L) a+ Y$ |8 B& D- ^3 D3 |( w% a
user=123456. ?5 v# ]5 ]* S1 `- k

, r! F1 J  [9 E9 _2 q* \. u3 D* u/ }; t
9 I4 Q  O, G9 |* f最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
* X# r3 a+ y$ t5 o0 \
+ {/ z; N' X6 ]% `; u7 o( E# * = r: X- {" x+ J; L8 j
% H0 N  n  Z9 W7 u4 S; y4 I
[/]# f( ]( P5 a3 a. T& t+ y; v
) J2 P1 B' q4 t  j" q& ]. C1 A
root=rw
# \/ v5 a" g1 X% A" x+ }1 y+ t0 b. {$ C- b1 }& m
这是用户的配置就完成了
- n, ?% M0 J% m- h* L5 e! K2 O
" g7 ~5 m5 R# z( d3 x接下来我们就需要开启svn svnserve -d -r /home/svn/blog + ^# C/ ^0 ]' N9 G( ~# c3 `
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo( }; S( Y" [* s; P9 h2 Y' \

3 W# p$ F* {, y+ r; d使用此命令开启svn 根据自己设置的目录自行更改$ o$ q: q/ a( }: B5 S( ]3 f" B
+ X0 C& k* Z: F" h- o; p9 W
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
& W* ~# n) ^. l  c; a
9 Z9 s5 T- P4 h1 M/ [- _
1 ?/ e- A0 ^0 }8 Q$ b4 nwin下载svn工具+ d! h; u. V, x% }/ s

4 S- o1 W  [5 f接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了5 {7 b  t7 o9 o' s" `8 b% }# e
" H  h; P: T" T
- o: J6 \5 j8 c/ ?" Y6 ~
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码9 R/ S, a5 B% x8 U% h0 @
输入你的svn地址 地址请根据自己的设置自行更改
% y2 o" T3 I3 Q+ W9 a
$ n; _2 Q* i% g. I
* `# D% ]3 G$ L' f1 P# N4 T然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
1 k: u: A% ^! f+ @7 @0 G3 S, n/ M. y, R' A- R
) `$ }& h# C) P% ~# f4 z7 }5 u+ M
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)' ]) b/ X$ @* z4 J1 Y5 _" P

9 I2 W* r! B4 e  x8 [# n, ]7 \" a" j

7 D+ E! B  t0 [  m( S0 G可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
' P  s  p3 S3 x9 h! |: O, d
& S3 E5 }' R/ @- s; }6 p% j这时我们保存在版本库的代码就会被同步到网站根目录
8 j! ^% m: q! N& n$ o0 n8 y3 T: Q; \7 q
' l: j9 @: K6 G$ L1 m
$ X2 G3 i7 j! p1 [- p2 _
! D/ c. h3 P* q$ A8 v$ c6 A' Z
+ P8 Y9 |; E0 \4 W" R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
: _# y7 s* Q' D9 L( B4 ~cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( ~  U/ I9 m) Y
$ ]" w" I) k" j  e: x7 T; y
  1. REPOS="$1"
    1 G1 J  N: Y! Y/ G; S0 N$ L4 f6 u
  2. REV="$2"$ U. H3 p, P( k
  3. TXN_NAME="$3"
    * p3 ?5 Z7 e# [9 p9 g
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"1 A: e4 ^+ m) y) L
  5. MESSAGE="$(svnlook log $REPOS)"
    & Y' ~' U- {/ r' f9 Q( m; |1 |3 O
  6. SVN_PATH=/usr/bin/svn
    $ s1 P0 S9 e" D# d& `
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    $ S; l8 [/ h  h/ \, Z: _
  8. mkdir -p /var/log/svnlog$ d% g: `& F- y9 [! ^: i
  9. touch /var/log/svnlog/ssyleo_update.log
    0 A; C( Y' ]  |
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ( Y6 F) j. c; p) J+ y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH7 V" z& A0 Z& E# Z4 B
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  K6 n3 a' S8 Z" {) t
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - r& p0 E) D0 P* F% x
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
1 [' |5 r* J7 p$ ]
( b0 f9 M) Q6 v8 Z4 T
  1. #!/bin/sh
    , |% ]2 x/ U9 }+ u
  2. #设定环境变量,如果没有设定可能会出现update报错4 F6 y- S: Y7 y6 v
  3. export LANG=zh_CN.UTF-8
    / I/ ?1 L7 W/ @1 O+ `/ ]# Y
  4. REPOS="$1"1 w* f6 Q4 G' x  J, Z
  5. REV="$2"
    ! o" y' U! `# a  Y
  6. SVN_PATH=/usr/bin/svn4 l) o* t+ Z. m( L& y$ x" Y
  7. WEB_PATH=/web/project
    # v, Q5 J9 \# |
  8. LOG_PATH=/tmp/svn_update.log" X: N6 F/ D( {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache5 w! J: I4 B- P7 k) C
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH  I. J* @8 _) ]( M0 y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH$ @! A8 x. \' f+ v( F
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH, x1 `. M3 T1 M- V2 r( @
  13. chown -R www:www $WEB_PATH
复制代码
) ^6 S' [3 B* o. q
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
' u, v# w3 [, o4 V9 Texport LAND="zh_CN.UTF-8"0 q3 Q& ~2 d& I) B! S' P
REPOS="$1"2 G2 q  O+ u, ]3 _! U1 C
REV="$2"# M) i3 X7 ?  `" R
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
8 \. K8 y) E: \2 H" K! gsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 |. f* l# |8 f% c! w
  1. 1 k% ~1 O6 C% c: `) q" Y
  2. #!/bin/sh, J$ B% B8 R: U# P' z% J. E
  3. export LAND="zh_CN.UTF-8"! M+ e, ]8 Z5 O3 P% g: D/ c5 u
  4. REPOS="$1"- V+ |9 ]/ O/ \  r
  5. REV="$2"1 E) M+ l  G: U. R6 W
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    4 x' {1 [, \$ f. w' o9 B
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

$ n9 S' ?6 _9 i/ v- S$ Q- M5 D  S5 _3 b
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 03:15 , Processed in 0.066595 second(s), 19 queries .

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