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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
2 N, Q/ E/ g8 _" ]4 ~" J3 xSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
8 Z" [. D- Y) [  X1.准备工作" ~) N+ B- J  u. k* J7 E
一台centos7 服务器 一台 客户端+ j) W8 J9 k8 `3 z0 S
————————————————6 }5 p/ h& C" Z9 ~8 A  p
1、验证是否安装了SVN7 t+ @  W' E3 I! B. Z

8 x& p. Y+ {9 r命令: # rpm -qa subversion
& N4 i" }- z$ C( ]; H( J( W# L  B, Y* k* l1 T8 d" o) @
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64% J' o, }6 E1 y

& N* u* G& C8 k+ ~4 N5 g否则,空白
3 K* E5 {" j' }' n
7 [2 c$ I; W5 W! V  U2、安装SVN的命令
0 _0 E) ]$ h$ m' o4 |) Y8 C* y) J
# yum -y install subversion! Q% q; E% p' M

; d! ^- ~1 C8 b- B( t+ H接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录* Y: u  e3 H' ]
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了# t' ]9 e) r4 R! @
1 W  Y3 G8 X# P% e, ^3 Z- G
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
6 j0 W" @5 T  y
) _1 {6 ^% H# u* Csvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)/ H9 a1 w1 B) A, i3 d- F

8 l+ J0 a6 N, ^$ k! o
$ k: x+ |0 C& M' {首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格: u1 j6 O+ W8 o& g( h1 s7 u! `

3 P4 G% u6 |8 G/ F* Q% T( d# password-db = passwd
: R% |+ q2 `6 S; r! ]* {8 o, K  U( O9 Q2 Q$ ^/ @, c
# authz-db = authz
  N$ I% H; q3 F1 v, U1 o  V3 u) p  Q7 j5 y! F: k* h2 P; H) ]

4 h* G* C1 z, g- t然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效5 L6 V2 z2 `2 Y9 S5 }/ ~

+ ?0 w1 I3 c  T3 H登录名=密码
' r7 _8 f9 p' f
6 p% \- ?: g; C# F" j# ouser=123456# W) I' D+ K6 v' [  K( L9 G

% l+ M' S/ f) {0 G8 X7 ^, N- }$ w1 ]8 @1 G
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限). D9 Q# Q* U9 q& o6 g( m
/ \1 U6 B, t" Z5 w  d* k
# * = r" a/ D/ C+ W5 g9 W$ G  t
4 Z1 X$ @: _. R$ o" f- |
[/]
) U8 E  z# e& ]8 |5 c, v
$ s8 \" J/ ]6 @- D- Rroot=rw
$ a; V5 w0 c# h1 O6 Q5 ], T# z3 ~; @; e! w, K5 W# A
这是用户的配置就完成了: f* V( i$ {9 n9 y
0 [8 B$ k. V6 m- q8 ~' H8 ]$ r
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 5 J% E0 B& f5 L
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo: v. h! a% U! m7 t4 T. N( y

5 [# ^7 D2 L% n8 D/ U3 @使用此命令开启svn 根据自己设置的目录自行更改
7 @9 S) d! A+ @$ V* Y* V' D0 Q
( [( f, m/ k$ |5 ]. m5 l使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
  m( j7 M7 n6 L" f
" E9 V1 @! v9 g, F4 D- }
- C& F& R+ v8 S$ ^win下载svn工具
% `% l' H. b; o6 f" s  X  F) |6 Z& x
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了0 q1 w5 n6 ^9 G6 P3 ]4 u, a& h

! x, S; C  d2 P7 n& {. s9 C- z$ [& T6 |" C; @
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
" v! S! ]  ?, g4 a输入你的svn地址 地址请根据自己的设置自行更改" T% Y  h2 v* q3 ^- M5 e/ K
9 t+ U1 m+ ~4 W; [$ g% a$ ]
" W! U& R& [* ]( h* F/ W' s
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了1 f9 u* R6 P. K* H

9 E5 z8 x6 R  `) m
  O% ]" H6 J: Y4 V(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
1 E, R, m  }' ]- B  Z/ D8 K# `7 Y, y3 h9 T
9 F% C0 R6 D( H2 _% e7 N
9 t+ T9 X2 H" U  P
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
4 x+ w; w" X( p3 Y' d3 r( ?, h: H
这时我们保存在版本库的代码就会被同步到网站根目录8 }( ?3 i  N0 m1 l

* ]  f4 n9 w( ]$ n2 r% ^2 {4 h; W; v2 F! r* x

* B0 e3 h3 _+ F& p
8 U2 M6 d. c0 [4 X) Y, a0 V0 `
: K  W  F2 @, n, \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录5 [4 a  f& {% @( \8 U& d4 B$ q
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit$ B9 l; J+ }/ X

0 z2 M: Z/ L- A/ p" Q. d
  1. REPOS="$1"
    6 r- T- m0 N1 R( `# J- k3 v
  2. REV="$2"+ [7 f7 Z% b* d* ~2 F) L1 j
  3. TXN_NAME="$3"1 N0 R8 W" r% N$ X) b
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") W) \! i2 P: G6 `
  5. MESSAGE="$(svnlook log $REPOS)"0 @1 @- o9 U' w' o
  6. SVN_PATH=/usr/bin/svn% z! K( ~( b; A" V+ z
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    2 M3 `% J) l2 h3 L
  8. mkdir -p /var/log/svnlog$ F1 o+ @8 f( X; u1 O0 \
  9. touch /var/log/svnlog/ssyleo_update.log
    6 L+ f) E8 S& |$ d6 @0 d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    9 f+ [) F3 {1 q) g7 i
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ' b2 }5 c5 m5 h7 h2 j
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    2 `' K8 s. [1 {/ _" C) C
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH6 c, d$ J* \1 G, I: M3 Q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
3 P0 }3 H% p( `3 e8 ^7 g( n+ M
  \" B8 o& T! m# ^; b9 v
  1. #!/bin/sh
    7 ^% p, \! l3 }  X
  2. #设定环境变量,如果没有设定可能会出现update报错
    6 ~& B) [3 `3 m  W0 [+ c
  3. export LANG=zh_CN.UTF-89 w( l+ V) f( Y7 ]; S
  4. REPOS="$1"
    ! X* p# r, l% h  v
  5. REV="$2"1 m# f" \) D% i4 U; S/ L5 \
  6. SVN_PATH=/usr/bin/svn
    / v  _% _5 t( t- H$ X- ?4 q
  7. WEB_PATH=/web/project
      ?9 a+ Z' y6 c# C+ _1 R  v) {1 E
  8. LOG_PATH=/tmp/svn_update.log
    3 k  @! B; d1 y4 u/ R  p
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ' l0 m4 @& v" x
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH7 t$ K+ U: `2 }1 j9 b) _
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH% u' \+ H# u- H8 ^
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    / S* \$ D/ B+ u+ m; D. u" r
  13. chown -R www:www $WEB_PATH
复制代码

  h1 Q! j5 E3 V% m$ O8 |, N- F
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh7 p! n, \3 n  O: u
export LAND="zh_CN.UTF-8"* f* Z1 V1 o  H6 m6 `1 }
REPOS="$1"5 B4 v# T% p4 }. F0 [8 h8 A6 Y
REV="$2"& z7 h; A' }/ z: G# F
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; _* V) K4 @5 I: a, X, \+ B
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 `: q6 Z0 \! _: C9 h+ `8 V, u
  1. 0 n$ {. E$ b- v, X$ J. K) Y2 s# F
  2. #!/bin/sh* C+ q1 l9 l  q% i6 ~
  3. export LAND="zh_CN.UTF-8"
    * ~$ k2 {' Z: m" h
  4. REPOS="$1"" p/ u" R# A; C) J( K4 X, q
  5. REV="$2"! `+ ^+ P! C/ Z. P; V  ~0 r
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( a/ j7 ~! w- m* W/ F& n3 t1 |1 @# Y
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

3 E! [4 S: ~+ Y( Q$ c9 N- n3 S
- `- b3 \( T: b. F+ }
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 12:16 , Processed in 0.126717 second(s), 19 queries .

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