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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
* c. q( N3 g, M- D, [SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
7 u' V( x' |' t; W1.准备工作" [8 q& s8 q1 {8 d! D
一台centos7 服务器 一台 客户端
6 R( b6 V7 D1 D————————————————& Y; @4 ]2 w* J% w: d% w
1、验证是否安装了SVN! g; j9 `$ w, Y% k! z

  A0 B+ M0 a9 F/ J命令: # rpm -qa subversion' ~$ {2 _! j+ [0 E4 L% O( ?
5 y$ {- l, c; \9 d
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_648 [$ X1 I- ]; U7 O

* F: _3 Y' R5 I; A. y. g否则,空白
, \- p/ M0 X1 w+ ?: a0 e
) H# @6 a9 Y" n( A9 v2、安装SVN的命令
( u; d6 \& }4 x: `
8 h, W5 I( K& k- s. L6 `0 s; C# yum -y install subversion2 @4 O4 s- c' C; d9 i1 y* C
8 V% N1 h* q' Z
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
2 O8 Q9 z2 ?0 s+ o2 o创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了8 H5 q5 _( V7 A: |. h
# V9 S& b4 {3 q' K. o
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置/ u4 }0 i2 ]$ ~8 J. }# R- h
5 g* A& g2 f# I, ]0 Q
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)( n! ~9 {: L( U$ m7 w/ C
. I5 w. g0 x7 l4 C$ L( a# A( }7 K
8 G/ D9 m- f% V) j, x
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格) U/ X% g$ M1 R9 p+ j3 _2 ]# p

# m9 n) p! V5 c- R+ @/ h# password-db = passwd% W% |7 p) }0 H% @

! F7 B' a& H* Q9 F# authz-db = authz
- }) B0 z5 t  e/ i/ g
5 j! m- f# q+ ~9 \
8 N, b4 o  v0 k' |' c然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
0 W# K: \. s9 S: d9 g+ K. Z% W1 ^; o# o
登录名=密码+ z* H$ g. A8 ?! W
  E7 M5 J# s* b8 `8 c
user=1234567 Z5 ?' v" T6 r3 z: l  X
0 l" h& j: {& N% A$ g

8 h+ d7 ]" T8 V8 A' \) d8 u最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限). l# w9 `+ r- X& U4 x6 p& b* S
7 |, n1 E0 {$ J7 f
# * = r
/ g1 q0 P3 |, c! I: |4 R
4 f9 R  l8 J* p[/]
$ D4 V5 H' t! X# u
9 _7 G5 ~4 d+ X' ^3 c: J& eroot=rw
" l) |/ o) B, \
4 g/ l. `' p* i5 f/ J这是用户的配置就完成了
* b+ z' P8 [5 G* n2 k
8 I  h! J3 H/ N' G接下来我们就需要开启svn svnserve -d -r /home/svn/blog
8 c$ O6 G7 |3 i" Usvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
% [' k3 t' l% l4 C( j! w! l4 A9 a# r; l& B# w6 g) K" M
使用此命令开启svn 根据自己设置的目录自行更改3 u) l! _3 U3 u; z/ |# Q6 T: h
5 d% L/ |# o; H3 M
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
  q4 }8 ]4 i2 x8 g# {
2 R* ~6 M; [/ w, t& y: v4 O2 S0 s! X3 m
win下载svn工具
; H7 E# J% R1 b1 y! u
1 n: Q5 h% ^9 }3 ~; w7 [接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
- Q; j& o1 l" @5 Q9 p* k0 k
, P! z9 q6 X5 ], \4 G/ g( }2 Z9 L, j# ?, M1 m3 P6 ]6 b
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
. Q# [$ N. b' J. E* G输入你的svn地址 地址请根据自己的设置自行更改! {$ D8 [0 [% N; g* b5 A

, d: m0 g  H0 S! L9 y4 m/ N$ k3 }  o  T
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
# |. c3 D! i& w9 v% a! x- k: s& g& L7 N3 A/ q% ~
% l: x% _9 ~6 Y0 e1 X/ B% t, L
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
* N! c" o5 v0 |# {! t( G1 I! b# z

6 A3 @/ k' Y. z, `2 `  w' O3 }7 Z8 O3 B* y
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存) f  e+ F) `+ }' w: w2 M
8 {: k6 a) d  b* s
这时我们保存在版本库的代码就会被同步到网站根目录
% ^5 g# E6 ]8 U' y$ y$ S9 z: P% q5 v" L" s
3 E+ T' P6 \3 [* L- t  c+ J3 g" R
/ e, N' x) X% V& z: T
: V9 o; y# ^* E* }  E

" _' l/ x  y$ R/ R. [1 V* h7 q2 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录4 ]9 x- _  b9 b) j1 x8 I6 G
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
- r  @! I: i9 [& D5 _
7 ~6 p, o2 R- w4 R( i! n' m
  1. REPOS="$1", g% _! ~5 W5 ~. e4 t
  2. REV="$2"& b/ X% E, u/ D4 `$ d
  3. TXN_NAME="$3"
    / ~* [0 L$ M- ~  O% I8 M4 Z/ C
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"# q( G5 x0 {" ]/ w! T2 Z$ Q
  5. MESSAGE="$(svnlook log $REPOS)"
    ( L6 U5 e8 b7 u6 ?- S
  6. SVN_PATH=/usr/bin/svn: @4 v! i$ s1 T5 `% }6 {4 h  ?; s: N
  7. WEB_PATH=/usr/share/nginx/html/ssyleo# y$ T, D( V6 I  h4 O' j) w. X
  8. mkdir -p /var/log/svnlog+ M9 p/ h& z* y6 i- e2 P
  9. touch /var/log/svnlog/ssyleo_update.log
    # }$ b) {- ~5 U, F
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ! D2 M' `- T  w" \2 v" R: a$ D
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    2 R5 D7 x( |  d6 C  h
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH7 x0 c( V2 }$ z7 {: c6 S) g
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    2 C; Z/ @" t8 D5 Y! }
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
) V4 B' h) d5 a% j$ K/ c% J8 W
* L% C; \% Y2 d2 D9 z
  1. #!/bin/sh, g3 V; T6 I0 T. Z
  2. #设定环境变量,如果没有设定可能会出现update报错( f8 _0 N2 ]1 q  p; ?4 L! P
  3. export LANG=zh_CN.UTF-8! ^: X. Z$ m3 D: h& r  b0 h
  4. REPOS="$1"
    ) i4 O+ K" I! H) X! U
  5. REV="$2", ^7 I5 W/ {( l! ~: h3 N0 W1 ]
  6. SVN_PATH=/usr/bin/svn
    ' V3 ^0 v  G" W3 A2 B9 ^, K9 ~
  7. WEB_PATH=/web/project
    ; ~  _# ?' \* Q! a" v# g9 a
  8. LOG_PATH=/tmp/svn_update.log
    : T- Z' g+ q* w0 B5 Q3 F
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache. i: `4 f0 s  k# I' z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH. A7 \! ^# K6 J* J* T0 P" l* f0 `
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH  {& }; |9 I/ K# y
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ' X( [6 p7 r1 x) n* g, A, E
  13. chown -R www:www $WEB_PATH
复制代码
2 d4 }, Z- G# y9 A0 n+ T
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
" A1 W( z4 i; E: q; B7 ~' B. @export LAND="zh_CN.UTF-8"
, U) r- o3 y) j0 R: t( A# FREPOS="$1"7 s- _' `* n% F6 @! _
REV="$2"' }8 Q3 v: w9 k& }5 D
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
9 |/ v1 I  }' L' f$ \; y% qsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- l) `& ]9 c  }" y
  1. ( C+ |; ^+ V1 o- Y; {! P- Q4 u
  2. #!/bin/sh
    - B" _5 q) U, P" W
  3. export LAND="zh_CN.UTF-8"- D: M+ Z# ~3 U  ?
  4. REPOS="$1"/ g7 J; J2 D' z$ p
  5. REV="$2"
    * O! Z& @2 u7 y0 \! z
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ' f* d! W: N8 F5 k, b3 \/ B
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
2 }3 }0 c, @; x0 H' Y2 z: k

0 v3 }7 c, o: y% r! i& U7 `+ ]/ S
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 00:41 , Processed in 0.111318 second(s), 21 queries .

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