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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
, ^4 L+ {% {5 e# M  E1 D, sSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
- y) O5 y! L0 s& i3 U1.准备工作0 Q5 k( [5 S2 a1 O: i7 i
一台centos7 服务器 一台 客户端1 b5 D8 P0 M: s
————————————————
5 ~  e, }! T& ]) g1、验证是否安装了SVN8 M# H  N4 U/ e  M$ R
9 K3 J0 p1 X. p# P1 b
命令: # rpm -qa subversion6 z& a" m  g+ i' I4 T; r) j
. B5 K# O# q( ?! F4 ]0 d* @$ a
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64# j% n8 _6 t* f) f6 m( \$ z/ l

8 X4 H9 T. p& f7 j, }6 s否则,空白! h4 N* I( _) K2 T: g: q( `

' d3 j' j+ H  E5 f2、安装SVN的命令! T/ k, D, o1 w6 C- c: q3 E7 J
9 @$ l2 W' |2 W) I2 X( ?' j3 m
# yum -y install subversion
& N5 m9 c6 c0 B) @6 O, p1 y8 ]: E# X/ R8 I' Z7 s5 H
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
6 W( G' P. ^$ L1 C! b/ L0 K创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了/ ~+ Y& x  [, X9 c: E4 X# s" o
9 s3 V# O; f4 y! O. w- a/ J2 q
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置3 W; b1 x7 t0 F5 Y
7 f: L* ^" |$ o  a' ^" o3 B
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)1 y" n* p: d) v4 t4 X! K+ O( |

! j) M' i# k& ^! [0 n  v0 d
4 X$ t& I5 Y1 _" t7 h首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
, b& p8 r# F  L* ]3 G
. n' ~* A, v. V. H# password-db = passwd
! Y- w1 p; I5 l; I* V; W: `1 Z1 S( O8 g3 L" y) b" P
# authz-db = authz- ~, ^9 T4 B, T* V  i! O
$ c# G8 T" s0 V1 N; F
2 [7 y' y9 Y+ g
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效. `/ `  o$ E; o& r) H: x
3 w9 @+ |6 E# Z+ e# b
登录名=密码& E8 j7 f- E/ }, V

  _& W4 X6 m/ l7 f* fuser=123456. B9 r' S. \4 F

* \) m8 \5 f: g& R& R& H5 m& c+ h! P; o9 Q: E4 n+ c
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
& O6 c. ~+ m1 |* ]! f; j
" q* F- _3 j6 r+ o2 C# * = r( j9 }1 J( ]  i5 X6 U: [! X1 A

& `: x. n- T# K% O[/]% {) ~. [. ?) B9 [, M  R; `

& l0 H; m: a. q8 L" `9 broot=rw
- t- u, L, Q6 W7 I- G1 i: ^
  R2 X7 X( O! {* `# K这是用户的配置就完成了+ g. O% w; s1 x& p+ k+ F
% @7 Y7 o# `/ _1 x  B& ?
接下来我们就需要开启svn svnserve -d -r /home/svn/blog # B. x0 O% I/ e2 X- n+ t% Z6 P
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
" ^. n' ^4 Z3 F8 E. X* b+ Y% g, \
# x- v/ J# f/ [% V8 ]1 P! r使用此命令开启svn 根据自己设置的目录自行更改9 v/ Z4 v. V2 g% M2 J

) b& B6 e& e2 V9 H. Q使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
3 _5 }& J" t8 c% r
( Z8 z' _$ o; e7 I# A8 c/ G/ S, j& O
win下载svn工具
3 F# _0 [6 A4 U. a( Q: g
9 _" ]- i- l: |接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了6 Y) z9 |& g9 q5 l! x- W
% r+ \) O! `$ |( H0 m
5 {& T: Q' c: y# |; ~' l- j
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码0 _# L! t# Y, M( S1 t0 S! y3 I2 ]
输入你的svn地址 地址请根据自己的设置自行更改  Z) @' S* q: r2 y( x2 S

' q( |) M& ?8 W2 A$ G- h, G
: [/ o% e3 j/ o然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
  d% g! T/ u& ~7 P
- r; R. x: M$ o% @7 r
4 Y4 x& r: a5 C# k: H(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
; A- ]7 H; T7 t* H' A( @% r0 u& @
, `9 N  j5 a3 x( F9 Y, F3 _) ?7 ]: [: t4 s2 R

# O& Z( G1 {* V9 l4 I% ?, [0 g可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; {* ?* @+ b  j/ z4 _% X- z
% X0 N" ?; i% e- C, [/ f' k3 J
这时我们保存在版本库的代码就会被同步到网站根目录
; z4 D) m' ^0 |' @
5 ]$ t4 y1 n+ t2 }/ M$ t! Z3 u7 b
, E/ W' G- [3 P" b7 F; R  g1 ?9 @& D* N
) Z. {/ ?) ], ^( B8 I

- h* k0 S5 M7 [; {) ^7 p1 i) ~4 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录; i1 T1 @) X5 R3 n1 F- H% o
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
9 J) z+ n4 }) v
) X3 V. R5 T% J% M7 N
  1. REPOS="$1"
    3 I8 l1 j0 N* g
  2. REV="$2"+ J5 t3 E+ J) d1 u3 H
  3. TXN_NAME="$3"5 ]& G& S1 r) x0 X7 v: i& V
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"" W/ f- b' J8 c# k
  5. MESSAGE="$(svnlook log $REPOS)"6 |' t" |6 d, ?4 g) {! V$ G6 {4 Q
  6. SVN_PATH=/usr/bin/svn
    7 A! w2 |) C+ M
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    3 c, G. w/ q# z, j& f1 ]- l
  8. mkdir -p /var/log/svnlog3 n  N7 z' c. B+ R& E: L6 Q' I
  9. touch /var/log/svnlog/ssyleo_update.log  o6 q! [# j! E- b( u' O* ]4 f+ m
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log1 V3 s2 G) Y% L* {" A
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH$ f' B% `: m, k+ o
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH% ]$ x( C9 u- R, n$ x0 q1 v$ q2 U
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ' s# I) K( e1 ]" h
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
# x0 b+ \, \6 b& K, @
  g3 Q" m4 N# m2 F& @
  1. #!/bin/sh' d4 j! ~( C8 Z- {: }
  2. #设定环境变量,如果没有设定可能会出现update报错
    ' Q( M' r6 w3 @8 u
  3. export LANG=zh_CN.UTF-8
    ; c; J& K* c6 [4 {
  4. REPOS="$1"
    ' y7 G5 g9 E" y. |, u" B
  5. REV="$2"3 K7 |2 z8 t  }, ^: Y! K3 L" a
  6. SVN_PATH=/usr/bin/svn
    & a. C. K9 I4 a- s# e' }
  7. WEB_PATH=/web/project
    ; H0 U( Q6 Q6 H, A& T
  8. LOG_PATH=/tmp/svn_update.log4 d5 C  Z6 Q8 h$ y& L/ c
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache& s) ~% B0 W# a
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH/ H  m* S8 i1 T/ D5 }8 p5 v' F- V
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ' T. m5 [8 B! I- A# n( {1 H, V: L
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH7 ^  U$ `0 j0 p6 F7 F& h1 _- Q3 U
  13. chown -R www:www $WEB_PATH
复制代码
4 Z  k9 j4 `# _7 {
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
$ p- E! o! j8 }export LAND="zh_CN.UTF-8"3 i4 N! H9 p2 c! C5 Z
REPOS="$1"
& Y# _& A8 z% L9 ?/ K( uREV="$2", w1 r+ F3 b# S3 H
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; ^( z  ^  K: R. l& l5 ^2 ]
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" Q& k! A3 a- x; l
  1.   i" G( a1 W" ~, F* x6 i
  2. #!/bin/sh8 \1 z7 |0 E- p& i
  3. export LAND="zh_CN.UTF-8"
    " ?3 B- j$ \$ n; a% @& |
  4. REPOS="$1"
    % D# x) y5 a) _) E7 C; x
  5. REV="$2"
    1 X+ z6 B* ?& K6 g( t
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    & _, @  }; N- k2 w9 q  Q8 O! [0 J
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

$ q  V% ~$ k" T
( g" I" l: D/ k
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 13:47 , Processed in 0.116521 second(s), 20 queries .

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