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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
4 A) u3 w4 @" V4 USVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)! Q: s8 q% s' x
1.准备工作
* P2 M( K. v- `一台centos7 服务器 一台 客户端3 a/ l* y' t8 O4 h+ ^  I
————————————————
% `% }: M: Q/ O) K5 c1、验证是否安装了SVN
' l" b4 N; o) T& |9 T$ P% U) c  w) n" w6 c* p
命令: # rpm -qa subversion
$ x. j2 O9 ^! D% e% Z# L" `/ r: f3 ^% P9 o& u
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
6 z* }1 m* U: [' w. u
/ y% R2 |- o* R- c; R( c8 ]8 G: D* O6 l# N否则,空白
( _' n, T) h8 m) [$ x1 O! H
- x8 z8 H4 _4 j, D8 Q2、安装SVN的命令
! ^% D5 @. E% {/ R/ y2 G1 I* m) R) R% O: {' R- q
# yum -y install subversion
% H( N- O) j# x% w1 G2 b; v* c$ a  {! C% Y+ N+ [* Y" K9 t
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录) O2 ^2 ~. _: f4 {6 J- C# ]9 k
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
  ~- g- r- C  @  }- l4 H; ~2 d) E. I5 s. D/ }
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置0 O7 w& j  Z4 E6 A- J- |$ c
  p1 a2 P, g, C2 H8 o$ [# t  q
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
& J5 \: H+ |1 s6 S9 c9 ?. C2 y* h' x
2 T* @" ]+ N' v1 `5 Z
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
4 E5 k+ K3 g  u# G) n% n( j. b6 {8 ^
# password-db = passwd
$ ~7 Y2 ?/ ?: G3 l! _( ]4 Y; G$ w/ L& S5 h/ i% J
# authz-db = authz
) {' ]$ [" A2 G% I- E& V. R0 D% n/ n

3 D8 P8 K  [; ]) ^然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效; X8 x/ \' s1 [) |0 i$ Q& D( p

9 R) I) n4 \, J1 L, P登录名=密码) d2 L* j/ E* d% a8 a

3 S2 C" g3 o( tuser=123456
8 _1 j, e( m" w/ \6 R8 T. y1 _' v

. d$ u' D! _' w: ?( _最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
! p+ o+ A3 R7 R1 g) ?5 ]( C: _& X- N$ f1 c
# * = r5 [9 }* @) t& L, _; `5 F5 W
  S" j5 g1 s# Q3 w8 \: N) f! @& S
[/]! m6 a4 F  U8 E( U4 l
2 U+ v8 v) Z/ w+ h2 E3 M9 S
root=rw
' l+ m, D2 ~: }- [
  S3 h0 _, R0 j  [这是用户的配置就完成了/ m2 _# P4 Y; B" l  k1 q! I9 `' {4 m

: l0 ?- I2 j4 E1 w接下来我们就需要开启svn svnserve -d -r /home/svn/blog
3 g, Y, X2 B( `2 w" {. M9 o: r" @svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
# {' r! m( f# B9 Y( ^8 J/ u4 G
使用此命令开启svn 根据自己设置的目录自行更改
* x( E3 [0 z/ D6 F( x2 w
$ c7 ^( _3 L) J0 G使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了4 W1 q3 h+ C$ q' Z5 p

8 h) u0 \3 h/ i4 z8 }+ X1 l2 G( r* b0 W- x  n# ~9 D
win下载svn工具' F' g7 [5 ]6 ?: e* t0 F

8 ]" }. ]6 N+ Y! `0 z接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
! N% N" ^6 H8 ~) _+ z1 u8 m$ f& R9 u  N/ m& p3 v  Z- z
1 U6 A) X+ E. M7 s. H6 Z# t
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
& H; ^0 i; J/ T  O. r8 ?6 [$ n7 U输入你的svn地址 地址请根据自己的设置自行更改$ c- |: v# L/ X( A- \

1 a( W9 \7 x) }4 c
6 l7 X( _8 |$ C& D- T) l8 w+ _- q然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了; N; f& K+ F: m0 U$ s3 w! J
7 o1 c7 c# i  F0 O+ L8 B' V- _

. v8 c% q) y- s0 m(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
$ Y* j- z, F8 ~8 l; R3 M9 z& J3 \. i0 i6 o3 s9 A
- t3 x% I* O. f2 \8 J9 w: j
* _+ g& A& j5 r
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
! ]1 g7 P& t1 `' K2 \4 ^, Q/ w7 J" }
这时我们保存在版本库的代码就会被同步到网站根目录  K+ t& I, q; _9 B) q* P

  ?4 B; _% K, ]2 C* X9 B4 v8 @. |" R7 u( d/ M8 X
3 ?! X) v) @. [2 o
5 s# N: W6 w) C; f) d) b

- w" c% H4 F* ~) t( g0 Z2 E2 O* H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
/ m5 t* ?2 D3 J8 ^$ o, C2 I5 jcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit% o3 Q; I2 c/ _% b& `6 o6 S
- t. P9 v8 k7 S4 v! F9 b
  1. REPOS="$1"6 a3 ?- o8 A/ K0 n4 S: r1 O/ ~
  2. REV="$2"6 }( W2 s/ K2 X5 E! k9 N
  3. TXN_NAME="$3"' Z; w1 u8 Y/ T9 b" m
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    , R, v( H9 r$ }* w
  5. MESSAGE="$(svnlook log $REPOS)"! p6 I* C& S3 G7 F, ^
  6. SVN_PATH=/usr/bin/svn
      F/ x, Z  m$ T+ g9 H' e2 ]# ?6 @
  7. WEB_PATH=/usr/share/nginx/html/ssyleo8 L# O% `( ~4 z: f/ F
  8. mkdir -p /var/log/svnlog/ L7 z  W( t% ^6 e! s! X
  9. touch /var/log/svnlog/ssyleo_update.log8 d) J/ ]+ T$ W* t/ ^& I+ V6 v
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log' P; R" b# z% i. o2 U
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH2 d0 f* b' S4 Y) V
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH: Q4 U; g' g# J4 Z5 D( X7 j
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
      p. M7 h/ R" O
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
0 k. n8 R5 z( x6 {2 [

6 {* m4 l) r+ N
  1. #!/bin/sh
    8 a( A# L' I/ S: T8 b
  2. #设定环境变量,如果没有设定可能会出现update报错
    ! g. u  t# C* k9 W0 W
  3. export LANG=zh_CN.UTF-8
    0 J1 O8 u# b. `8 I' o6 a- a
  4. REPOS="$1"
    ! H1 G. J9 z8 L7 f
  5. REV="$2"  d/ d/ l- W: |% K- i
  6. SVN_PATH=/usr/bin/svn9 \! _' \# D' H
  7. WEB_PATH=/web/project1 F) c% Y* ~$ f) y; i, S0 ~' ?
  8. LOG_PATH=/tmp/svn_update.log% l& @" K) ?, {# w. M
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache& g8 e+ ]* f3 B4 k
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    . Y/ v1 I* y5 k/ l" q1 }0 a) P9 Y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
      o- }6 c* {8 G3 e' G; i9 ^
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH6 R3 O) N. K4 Z! c- _6 E2 K; _& h
  13. chown -R www:www $WEB_PATH
复制代码

3 g: N: f" e0 B$ A
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh- I& M/ y3 h9 a9 P
export LAND="zh_CN.UTF-8"4 f- f7 `+ f: E- h$ T3 f5 l  E
REPOS="$1"
5 r! P1 l' {# }! e2 k& g9 SREV="$2"( c# u# A0 _, {% [4 \. K2 U4 [
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- ?9 A3 }2 _2 r7 g' C! p; usvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
0 B3 x3 r& \' h% V

  1. & ^. l; `5 x( }: g* {) I6 N& g1 T* k
  2. #!/bin/sh
      ~: p0 }: _6 ^2 J& [% l
  3. export LAND="zh_CN.UTF-8"$ p% W' J# t( t: [) s
  4. REPOS="$1"
    & g9 b) i3 O# ~
  5. REV="$2": l' i+ K, g+ g* G
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" z" l& D/ s0 \5 R  _, t% U
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

$ O/ S5 a# x/ \4 `7 b) f
+ w  `' o4 i5 ^
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 15:58 , Processed in 0.114864 second(s), 18 queries .

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