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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
# Q' f7 C0 s& d$ L7 OSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)9 j& P+ p/ `1 b; X( F& u' k: u
1.准备工作
. G- _( V4 r7 v- R7 a一台centos7 服务器 一台 客户端  y5 ~& o  L# P5 f" k
————————————————
/ b8 v4 ?/ |( q1 m5 G1、验证是否安装了SVN
& x/ [5 ]% c5 z% h1 J1 G  g. n! M6 |9 W. O( ~
命令: # rpm -qa subversion
0 x! E& ?3 S* s8 J, L: `' z6 Z8 n/ X% V
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
2 ~+ s9 r  a$ e$ k! ~  v, x2 X& T" `6 o, p  N8 [1 Y
否则,空白
4 u7 y. [3 i' j$ A- s. \5 Z
: k" l3 o( J- [- v9 c8 ]2、安装SVN的命令
7 ]# ?& w3 s0 v: \: J5 a, C: H! i* M( G
# yum -y install subversion! [& F/ o+ O- e% P
. d, H2 M% V9 q4 Q0 _
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录& k; g( y: m0 {8 i  e+ b, O
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了# N+ P! O; T. l$ O7 j, ^  G, t

  x2 P6 N& S2 v! T, O' p, A然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置: F  n/ _! `% ]1 _# }" S1 ~  [- n
8 X$ E" ^1 X' z7 e5 J! N
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)9 A* Z( z: W$ @, V/ w; U6 X  _
- C, W) `: m8 z* [0 [

. e0 E2 U# a4 ~! T首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格* c3 d" p& W7 F* J: l7 `
% N0 h6 D. L- W! v4 F3 N/ l4 C
# password-db = passwd' W- W; V( c8 P2 r$ Z# j, c
: }# |% f% c1 Y7 t0 e
# authz-db = authz0 y! w3 \( J) ^
; T" Z8 z+ L, E6 H5 g6 i- _, }

' e( {, i0 w( t! j  y, F. {# D然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效: a) m. U! V, c) a) o3 K( X& f' V

+ J& S* v: \& Y% [9 K登录名=密码5 d# U; e5 {; I2 \  \# Y' Q

# M  C- \; N$ t, A. {& `user=1234563 q7 h$ h9 V$ ]2 V  v% j
* q/ ~- u- G" F0 ]: D

3 {+ y  p0 F$ d5 R% g& }  |最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
0 T% S3 y( J  G3 b! M
8 c% q7 ~4 _' V6 e6 J' E# * = r
2 f# q! V3 q# }1 z' n0 L* h* z% x# A& u; z
[/]8 ?& G- ?% [/ h8 u" h+ {
$ j$ L$ ~: |& T4 m
root=rw1 c% i: Q& i# ^' P

/ {3 ~& x3 s) X3 P! s* l$ R这是用户的配置就完成了
* w+ o' H/ V" g6 f  T" R/ e! n- l8 s
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 6 _% a' m0 h+ o0 i6 {2 k% i
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo$ x2 W% P# E" ^# b8 `" u
- L) J* L& S# I+ V# a
使用此命令开启svn 根据自己设置的目录自行更改" ]  X  ]3 v3 ^$ F

, Q* H9 y+ P) y3 ~0 v使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 O; N) p6 g5 o, s. u" a8 J) s7 Q
. I) B! |6 h! P3 t- I+ d
9 \3 Z0 W% Z2 cwin下载svn工具, m& z* ^; M9 Y; U; x, _8 f

9 o  t3 ]) B3 q. K+ j2 O接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
) P, d) _' J7 `) `. v8 J6 u  b
+ ~% x1 w& P; D, _4 Q7 l+ x, e7 P" N) d/ _0 h& y# m
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码$ w! G9 o' D: |7 O( h+ x
输入你的svn地址 地址请根据自己的设置自行更改0 V1 O* m1 W2 ~7 b8 w6 ]  M) Q; F8 o
/ L8 N- N$ g4 q

1 p( v" O5 M: q# A1 A" Q然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
8 X& p% m" V( w& U" {
# A& o; S1 s2 Z! m" H. w/ l( p8 y6 Z7 r) N
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)% ?& C/ y# t/ d" R. J

* h% K/ H! U1 X) i  @6 }2 F$ [6 f6 Z8 n) {& p

  I) d% r! }1 @5 p6 b+ I6 w可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
1 B0 [' {+ r9 _" u" r& |& J) o) W; P& {" m, u  o, }
这时我们保存在版本库的代码就会被同步到网站根目录: }. ^1 i# x& d* i$ Z7 ~# f( R
" J$ \+ S9 i# ^, k

" f+ X2 L, H+ a- v2 |% y$ y- k& R# N2 B

. o) r/ [. s2 T, X! T
# G2 ~9 y, b) m3 F/ [8 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
1 c1 @6 n7 _  ^0 `' }3 k! q/ N$ J" \cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit- _3 v/ c6 ^) o! `8 M1 H

  l# t# F! W9 T
  1. REPOS="$1"
    * ?: K+ d1 v1 d% w6 J" g
  2. REV="$2"
    3 y! N8 H2 j7 Y( `' {1 M" r
  3. TXN_NAME="$3"4 Y+ {2 |6 i* j. _8 d+ ~: W4 R5 w
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"  A' I" Z% C# O7 t$ ]
  5. MESSAGE="$(svnlook log $REPOS)"
    + g  t& a6 `( x* q2 o
  6. SVN_PATH=/usr/bin/svn
    . [* ^& d7 X$ V. o) R# X' C# i
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    " n. e' ~4 ]9 Q$ O' z+ e
  8. mkdir -p /var/log/svnlog
    / ^: T5 k  F% x6 J* L7 X
  9. touch /var/log/svnlog/ssyleo_update.log
    8 n; m+ [( |- O" ]* r
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log% i& s2 C1 P/ v& k9 y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 `# s" \7 f% i
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    4 N, p( ^' i1 F- F1 o( `; R% S9 i
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ! p& I* h( M& H- P! F
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
7 g+ A0 G1 s# k
8 c% w) z  A  h
  1. #!/bin/sh
    3 M+ L% [8 W  b
  2. #设定环境变量,如果没有设定可能会出现update报错: f# B* D5 r5 {; d$ X' Q+ ^
  3. export LANG=zh_CN.UTF-8
    5 t% e% n3 w3 |* |+ R7 ]
  4. REPOS="$1"7 O7 s1 B  |9 g! ]* d
  5. REV="$2"* o6 g0 u. k0 }; |$ T" q% O
  6. SVN_PATH=/usr/bin/svn; t' V$ y# x" u$ [' x
  7. WEB_PATH=/web/project) J5 v0 D* p% M, w
  8. LOG_PATH=/tmp/svn_update.log
    - I- S3 P; L% p0 {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache) p! q; B8 A8 I% N- g/ z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH' v, Q3 y8 s( F7 ]7 a
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    2 ?7 A! X8 G0 b. D
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    6 {7 W4 G) ]" N( l( [; i  y! I
  13. chown -R www:www $WEB_PATH
复制代码

$ j$ ]3 {0 |- {8 f, d/ K4 l% w
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh9 u- b, N+ G8 D3 t4 O" h9 ^2 ]
export LAND="zh_CN.UTF-8"9 i1 z! j0 ~5 y+ J7 S
REPOS="$1"+ t0 }  ]5 M6 x5 J
REV="$2"+ E$ y& ~: a3 c
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
$ R, u% I: }8 F, t* Xsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
9 N; X  O& Q, {& ^8 o0 Y. Z
  1. 6 g- W7 c5 q$ W$ X, o' i
  2. #!/bin/sh
    5 V4 e( }" N0 q/ o: v( c
  3. export LAND="zh_CN.UTF-8"
      H- M2 H( U1 D8 o0 \1 f
  4. REPOS="$1"
    ) d- k+ i7 U/ b
  5. REV="$2"
    " \! x" s4 M  P
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 E8 y  C, R2 {# Y9 I& z' B
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

7 \  c" r9 T, ^# n( _2 y2 M4 X
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 11:10 , Processed in 0.113379 second(s), 20 queries .

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