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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
5 a3 Z/ L  |- V1 R; n( ~SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略): M4 B$ \4 }" V& V0 o: Q
1.准备工作: y2 g9 }. w, ]0 b4 c
一台centos7 服务器 一台 客户端
3 j1 Q! Z' o  T, }3 N————————————————; l  v' X, q# Z1 B/ G
1、验证是否安装了SVN
) i9 L  W5 b4 m# I8 X% q/ e/ z! ^9 t- y. l
命令: # rpm -qa subversion
4 A1 Y5 ?/ ^$ c( i1 A
& B: T( q8 c: ?/ o如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64% x6 p1 k7 ~! W
) J' [. Y% m; \6 b
否则,空白
4 `: C# w3 K, Y6 W) N8 h
9 u( K% w" s7 }* }" W/ b2 a2、安装SVN的命令7 [" g0 q! M& W5 h

% j( W4 i# Y/ d8 f7 D/ [# yum -y install subversion: d- b5 Q( r# K/ M: e0 v- h
; D& m5 h" Z/ |$ E5 X% E  k, C
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
6 w1 }7 y* [/ v5 w, L创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了0 Y* ~5 o3 A9 I$ u4 A

# U0 G9 R: z$ o$ J" K0 ]然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置: A( n' H2 r% N: _% b& p" v/ N9 ?
" @, I2 k2 \& C0 z  v! O) p
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)) k3 K; @& I( x* o+ D8 G8 F4 z
0 I! b9 h! Z& M6 b( s+ G
4 p1 ^- _2 M: L
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
: V2 g# Q$ K- U/ j5 o
  _: a% Y# m9 V6 W5 |7 [" t# password-db = passwd& U! }7 |# m0 ~' v/ c
; }' b7 A, w8 e+ z9 C1 B  @" m- P
# authz-db = authz
5 r5 a$ O# a5 O
! e  |* {/ X' r3 H# P: b( [1 P/ \+ `' c
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效2 R+ q! {$ }' }

- u, F8 C2 }4 z+ v. N6 b登录名=密码
% D, q4 _$ V2 P& f# Q+ l2 ~
/ K8 e: Q6 w' ]& Kuser=123456
. z& H$ |4 Z: ~* h' X, d' U
" m0 d, g1 x% l; z2 I- ]  w+ Y0 E3 D; t$ c
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
$ U- m4 O$ C- ]8 S
* _7 O. y3 ^/ e5 R5 o# * = r
" v0 q  ^( ]- q3 ^/ l: y5 u
9 U7 j0 H7 g$ ~* D; a[/]
2 x& W; t- l$ ^3 Q1 O8 S" W: H+ M0 k5 E0 P( P" u! P! n
root=rw
) t  p9 \4 F0 U* i8 U* `# o) o
: ~, [. g& j$ V; ^这是用户的配置就完成了
% j! O8 I) \: z' K
) K* l( j$ Q. D接下来我们就需要开启svn svnserve -d -r /home/svn/blog
  B% @* j9 E" k+ c' A; ssvnserve -d --listen-prot 端口 -r /data/svn/ssyleo9 `2 b7 ~. C  |+ J" X; X

" z! q1 U' z  O: u4 w) Q' P使用此命令开启svn 根据自己设置的目录自行更改
) t4 _- p; X, x& I9 p6 G, p0 w3 q2 J( @* S9 f" T/ l
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了3 L6 k, l6 Q$ d' N5 i+ K9 S9 Q9 [
' _! t; ~) m) T6 Y+ z  J
, @4 J6 z& n8 {$ w
win下载svn工具
2 L/ f8 D- W) z& I/ ^4 K% L0 B! W; Z9 r5 M& q
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了1 F  W2 S$ r3 d- U
, I/ m# {- b5 G8 |! w

- H. V# ^: q0 q重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码" n4 ?& a* c, b$ w! y1 M, q% w
输入你的svn地址 地址请根据自己的设置自行更改. K; B/ F" X. o4 `* ~9 i( Y

5 c9 v+ I  q; @+ ^
3 s% l' R1 K: N- n5 r然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了! ?' h0 C. o0 T/ w4 m

! X& W* s; p% V( h* t, s
* D" H% M, ~# H. V(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)* e; e( X" @5 {5 q5 K# T
( q4 l. |+ w& C; \  \# W' V1 v& \

6 F! I( n, b) g5 R' D, C( z( s+ F7 Y
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" m. W7 @; P: j8 A3 U/ e
5 \* V7 |& I  f9 U' s这时我们保存在版本库的代码就会被同步到网站根目录
/ K. m) W+ N9 k" e" d3 _4 T$ A8 W  [6 b: \0 F
* a; U3 j7 m7 j  r  y3 r

4 a7 N7 `7 {9 m' l5 h/ @3 c7 H- j, a# z0 x% h( J
4 @  }. }/ o% q8 `' `: P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
; z+ c6 _$ G! k6 r, B8 y& h8 Ocp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
+ n" h/ L: V1 A! r  I2 X4 f
2 q2 |6 L8 c: l/ T! u- g
  1. REPOS="$1"- L2 E( P% k2 r  `% K# y  ~: Y( R
  2. REV="$2"4 }  R" u) P. V+ v8 v
  3. TXN_NAME="$3"
    6 o" K: }. [$ S, F4 E0 O( x7 D' C
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"3 }  b. o! u. [! K- F
  5. MESSAGE="$(svnlook log $REPOS)"
    ( ]4 f4 e( b! f1 P
  6. SVN_PATH=/usr/bin/svn3 S9 u/ P) G; S1 Z- t/ `
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    3 L/ c" [6 P4 _3 D- ^+ _* m$ b
  8. mkdir -p /var/log/svnlog
    6 s. Y/ D7 |6 K% J, a  u4 X2 Z+ j5 U
  9. touch /var/log/svnlog/ssyleo_update.log% C" v, e4 ?' K# O4 C  `  j: C
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    + h( [3 M9 h* O9 B
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    " \" M/ [$ _- g. d
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    ( T" j' o7 M$ g" z- C& ?7 U/ h
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH- y) v$ ~8 A* E6 D
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
- ]% `* I" X1 L* e, S, Z- V

3 y% F6 `( S! S0 I
  1. #!/bin/sh+ R; m" o- O5 @: L
  2. #设定环境变量,如果没有设定可能会出现update报错
    $ z% w( _& i5 I4 z. m
  3. export LANG=zh_CN.UTF-8
    * o0 \% H$ K! e' F1 Y+ X
  4. REPOS="$1"
    8 x6 w( |( r) Q* m* w6 s3 M) c
  5. REV="$2"  c+ l" M" {" [4 x5 F. X, [
  6. SVN_PATH=/usr/bin/svn2 c1 z& s2 ~6 j
  7. WEB_PATH=/web/project8 ~/ o1 p/ {6 R2 L
  8. LOG_PATH=/tmp/svn_update.log
    4 {" P' B* f1 t6 Z
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
      t: r: @: `* S6 Z4 G) C
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH0 Y% c5 S4 z, W7 r4 z: ]
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    4 w$ X( F# q' G# H1 f5 @  |
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * P$ A% B! [' j- c$ x
  13. chown -R www:www $WEB_PATH
复制代码

: ~$ v6 o; N: h  |
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh( B9 I! Q0 a  P% L: s
export LAND="zh_CN.UTF-8"
# v' r% v# H4 @" _& f, {/ gREPOS="$1"0 f! @  H& d- B0 V3 ~& m
REV="$2") o  [% q6 W- P) E/ G& ~$ E
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
4 I2 _! d) Y( M3 P. {svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
# I# `3 z, U0 ?* B! }( f5 A0 T8 z
  1. / J3 y% H% z* Q% X
  2. #!/bin/sh
    & [- J0 C+ E& [1 b" ]+ ^
  3. export LAND="zh_CN.UTF-8"5 h6 _3 s2 a2 ?* k- f  l3 B4 l
  4. REPOS="$1"5 @" k; L* r4 ~( R* ?
  5. REV="$2"6 P: k: {8 s4 F# E$ E/ n
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    , }" V* e5 {3 {3 D  a2 G
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: h% r6 e2 A. K3 C4 G- s  F# i7 H3 h; b& x0 I
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 03:08 , Processed in 0.059887 second(s), 18 queries .

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