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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介, q9 r) ?# w$ Y! S
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)/ O7 W0 D5 i- M  Q
1.准备工作0 `' G0 D6 L4 [2 ^/ D* A' Z7 l
一台centos7 服务器 一台 客户端1 T" ~9 k7 e, W- W7 v7 W
————————————————
" r7 a) {% O3 M4 d4 ]+ e1、验证是否安装了SVN
, O  P8 A% m2 n2 L, x2 Y* J
) E9 d/ q8 R. y6 b; F命令: # rpm -qa subversion
/ n. f5 A$ [7 h3 V2 c; n1 N9 h) `6 x6 f0 m
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
/ X3 h( m2 Z" y1 b6 g
5 S4 i6 M( F- ^5 T/ h; `1 U2 S$ X否则,空白
9 D/ E& Y6 e: [" Z: X
5 j+ I1 [' ]# {2、安装SVN的命令/ n. B; M! Z8 i2 y/ n. c
; s0 i1 }& c; J. O* B8 d" r
# yum -y install subversion. T; U9 V0 R1 w4 y, d' y
2 L% M9 H$ I0 i' K2 k. d  H8 R5 S
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
/ V( u0 D- d" R2 o5 N& A3 B4 n创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了* P5 |  e! P/ I) C$ r
# `# S/ J% R0 ?7 S! O0 D
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置/ K7 X% v( N7 \, o$ ]
: P8 f! G; H0 O% W3 [+ |. W) c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# e: I, v; B- A* D/ ~. C

  g0 n7 \8 M. m0 X' V1 n
( ]+ s( j9 `  `3 s, s! i. ~首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' |7 \- L4 b2 o/ e9 e8 p% b9 s0 t" v% [' e9 q( Z- `
# password-db = passwd. X) o7 V( U' O5 }, b! P4 z
' ~- G" U4 V$ U' ~, O
# authz-db = authz4 C# B6 v8 t/ \% ?

6 ?+ T3 u5 c% D' D: A% m' l- R) V/ U& `- C9 E
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效) u1 t2 T1 f+ q5 g3 R

$ x; ]) X% F. w# j5 F! P登录名=密码
4 R, V2 m8 ~) _$ X& g) t: l1 p. T% @0 T4 d
user=123456
* P/ p: v' \+ a: i- p0 g( N. U% V5 J4 r5 Z& s( U) x% Z8 ~& H

% M# Q, q! ]7 j$ N最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)9 W( T: K7 \. {% ?0 d: j6 V

7 `* z& w# k0 [8 a  C8 V# p# * = r" [) z- f0 v4 }: q7 M! }

4 W. l& ?9 Z& U2 R4 A" T[/]
8 a/ Y7 Z2 B! f9 H" }4 }% h8 a8 s2 n
# Z+ F# q; K+ `) R2 v! xroot=rw
3 e+ ^/ Z  j, d# X! w/ g2 x# I& w: f
$ X9 Z9 D/ y* c! p' O5 @; o4 Z这是用户的配置就完成了( S# }* e. v# j3 Z* \- T

/ l; r) ?* C# X! v接下来我们就需要开启svn svnserve -d -r /home/svn/blog - Z# Y' n9 ^! v% r- [
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo. \# b# ^& @2 Y& ?; S
2 r& X5 b4 `7 H2 i  e
使用此命令开启svn 根据自己设置的目录自行更改) D4 l3 o/ M) L- E! J
+ n1 v7 p) b# m* `
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
! I  l" b6 _& ?6 w* X7 b! g) L& U  @
% Z/ e7 {, Z( p8 M+ M: t; s% Y
win下载svn工具  d; ~. N% a0 u& I6 p
; o9 c& H) j7 e: }. `2 @% w
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
- X5 f1 A/ g; M& G. }  n2 i" I
0 c% l* k4 Q" x/ ]) I. M# X- l2 Z, G
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
: Z, y$ U9 |9 w: y5 b2 o5 b- Y/ q输入你的svn地址 地址请根据自己的设置自行更改9 k" `, a# O' N9 u& q
, z+ ^% }5 [, S

. |0 I8 r+ U9 Q, l然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了3 w( ^5 e' R! H+ z
1 c7 L: F2 N, T* n
) y5 M) K5 u) u, u, e5 u) P! g' @" G0 d
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
; v1 f8 M& a: R% s+ N. Z3 e2 u: R" Q' Y6 A: H0 ~

6 r+ m5 `3 g2 {; v* a: I# w: n3 T! Z8 F8 j, J( n
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
5 D8 s! F0 S! u. m
- \5 j7 Z' M0 p& U9 F这时我们保存在版本库的代码就会被同步到网站根目录4 t& R. R- {# @  u0 T

1 F1 O( E% @0 W$ F* Z3 }
- ^9 K6 N# x( S1 X0 E- V
' Y) j3 K: U4 X- P% I/ N# r- A1 j% I2 ]( y

" k3 h* m- `4 b) E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录4 h  x! A! g2 L' O( k- X
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
5 _9 B- e5 @; [6 y, h; _( M4 Y; A
0 U; r! `/ d( _4 ^( ^/ ]( ]) R9 @) Q
  1. REPOS="$1"& T# d8 |2 M5 `4 i+ {7 ]& K% [
  2. REV="$2"
    3 I) j5 u2 E; i* U1 Z
  3. TXN_NAME="$3"  V* e/ F3 w2 E% ~! a9 |7 K. \
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"" R4 U( X% [8 l, D& l, t. ]
  5. MESSAGE="$(svnlook log $REPOS)"0 e9 o7 c1 |8 ]1 \* d
  6. SVN_PATH=/usr/bin/svn$ V9 E  @/ b$ |0 O5 E  C7 H* U0 a
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    * w' `* p' O, \1 \+ w
  8. mkdir -p /var/log/svnlog1 C3 V) `$ r* k& c9 G7 @) C
  9. touch /var/log/svnlog/ssyleo_update.log
    5 f6 W: x7 R! e+ F! c" d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log" M  c4 M+ Z' \& ~. g' L5 w# t
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 x+ }. v3 b$ o/ @7 j; l( C
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    ! u/ X6 T5 c7 `* t5 E3 [- n
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    & ~2 B8 s* n& ?5 B0 \: k7 `
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
* K) q6 \3 T7 C3 a. `  a
0 g0 Y/ W$ S' P
  1. #!/bin/sh+ W4 ?/ M) q  ]) N" `, F
  2. #设定环境变量,如果没有设定可能会出现update报错
    " |- N! i. u% N% j' E. m
  3. export LANG=zh_CN.UTF-8
    6 H- u% q* U7 u! B' v) J
  4. REPOS="$1"# l  ]6 I' Q& `4 e4 X# d4 O
  5. REV="$2"
    1 E% y  w  b0 ?% j3 |# q6 a
  6. SVN_PATH=/usr/bin/svn
    / h6 ~4 R' G/ _2 i/ O/ ^
  7. WEB_PATH=/web/project* f. W2 O4 y- L: n1 T
  8. LOG_PATH=/tmp/svn_update.log) g8 W" T, j& I! R- X# {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    / x( w" ?3 p2 ^4 }
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    & w/ i6 [$ I' f7 D( i4 M& Z
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    - S# G) ?! J* m7 G% h( D
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH* D9 L4 o2 J, z+ b2 J) w( ?5 l
  13. chown -R www:www $WEB_PATH
复制代码
: l) l2 M& x4 o
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
4 B0 b0 D" e% P6 i6 ?- k8 E4 G$ mexport LAND="zh_CN.UTF-8"' [; V) C; T  l4 _
REPOS="$1"" J6 P8 t+ X6 w: }. @
REV="$2"
9 c! X+ c3 M3 P8 v) T" k- `0 r& Tsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
8 c7 J6 c2 `6 H  [' r" V/ ysvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ }/ _- t" O# g! A6 h

  1.   l) {7 N8 C, e
  2. #!/bin/sh2 u5 y& h, [( x/ H2 F7 S( u
  3. export LAND="zh_CN.UTF-8"
    7 i, F; j: [& K+ u, u
  4. REPOS="$1"
    1 z$ Y& u+ `' b: g
  5. REV="$2"
    5 Q& [. H( q; Y' n& D1 o/ F" i
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    3 p6 y4 F# v( q) v1 E
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
" R4 R' O( L& @7 T  @. p% `1 W
1 r/ v/ z1 f/ ]; z, [
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 10:27 , Processed in 0.107158 second(s), 19 queries .

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