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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介& k3 F2 M; w: M  V* |5 u
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)  O. R$ O  K2 F! T! |7 l) q/ ]4 Z
1.准备工作# Z+ ?  e! }( G: r' a2 w1 p
一台centos7 服务器 一台 客户端
) R2 C4 O. w0 z7 \6 v" H————————————————$ E; F0 x, h; s
1、验证是否安装了SVN
9 J2 ~4 m4 W1 X7 C& s6 l# C
/ |3 ^2 I  i! s& C命令: # rpm -qa subversion1 a3 a, X1 ^( y- Z7 Q

. v, t) c, N' i9 G- I* f# y+ v( Q9 F如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
% Z8 m) V6 p, f+ c1 a# A
# A" f& E1 W' I否则,空白
* C2 X( g9 g  w+ `8 M: Z% d3 @
1 ^% C; p5 b7 u( b* j6 X2、安装SVN的命令
2 _' l+ F9 c) I) [1 y8 |* I+ M1 k5 ]( ]8 b2 j1 G9 J
# yum -y install subversion; S9 w1 P9 c1 S) l8 E; _: ~7 [
9 |: W- U* f5 P6 S; D
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录1 P% D5 e- E  R$ ^* g9 s; J
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了5 }+ l3 ?6 V6 F# U5 z

* ]( L6 Z6 h2 h* F0 T' U然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置$ a# \6 r: l' M. q  ]

# O; A4 y8 y1 ?2 `svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
4 I( z" M0 y2 B" r) t- T& A
7 l- i* X% J4 C, Y7 C! e! l2 F7 }9 A3 @8 R! P- h  ^  i
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格4 y! ~7 h! P" W
) ]' d: ^) `9 m' l
# password-db = passwd6 z  Q0 q2 I) g6 F3 @  M

+ ?* v! {, t4 j2 }- e3 c# authz-db = authz
& z) ~, e0 Y3 H/ W. b/ g/ Z  K$ _% `' p2 T" e) G" y9 h8 K. U

$ Y: L  N3 ^% W5 X7 u8 W然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效2 X* U! e, \: p- ~$ `
" O* B9 X; ]* D$ \" C
登录名=密码
* m+ s/ o+ g/ z! n. T
7 |1 `+ N/ P5 \) d& r1 c  ruser=123456; d1 V1 u0 l8 Q9 K" r0 E; k

% a5 ?% m$ d# c" k/ L" x3 w
4 Y' t! V( Y/ A* M, i最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)9 R  ~7 ], \, n/ {) y0 g! S

% u3 F- s8 k! t# D# * = r( x- v* }4 [' B( |* f$ o( x2 S

8 L% h7 z2 ]7 O/ O0 R[/]  \5 [' S: M6 w8 _1 b
3 p! g& I0 |& W, R6 Z8 A. d. M
root=rw
& ^9 i! y$ t) T6 X# X+ [3 v% c+ G5 k
这是用户的配置就完成了3 d7 A* X: h- D/ }! k4 Q
3 y' C( J  K! ]# g
接下来我们就需要开启svn svnserve -d -r /home/svn/blog % `- W) M! ~; F! {- Q
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
" s# [3 r9 z5 _/ N; e
  y: Q9 c- W' l$ @# h2 m1 r1 _使用此命令开启svn 根据自己设置的目录自行更改$ e1 P" V/ z! M1 l5 i
8 l2 k2 Q/ ?5 K2 b0 P
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了3 o6 O( g* W5 f

$ M( ^( N( B: K1 c# L; c3 U. Q7 ^: t( G0 T/ e! _4 W6 W) }+ h. s) {
win下载svn工具
8 w2 Y& ?3 n4 f; A3 S
8 z6 _' z  N! ~3 b  X: Q4 h; d接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了. t3 p% U% F# p- r1 D& X! _

& T3 `" c; B; e/ T& z1 o: n
( ^! d) p1 ^- R* T重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
1 F. W  d: [" m$ F+ H7 `- R输入你的svn地址 地址请根据自己的设置自行更改8 ]$ W) M* }9 O% e. }. l
0 M0 U' w  z* b) }8 `

! I0 P" N1 `, X  A% R然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
; a* N4 N" _7 v0 U* S5 K# L( g* N$ f5 p. T, U, X, J% `
2 j& t! s) B1 L6 C1 F3 R' x0 l
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)4 ]  D2 v; i+ @% `* Y4 I
9 _$ J8 G- I* n1 M
; a1 t' [; C2 f. L. f
: S/ O" @3 h  q6 p
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
0 U( v" {; p: _* P6 v' ]
* Y' Z; _7 J" }. F4 o这时我们保存在版本库的代码就会被同步到网站根目录$ m% V3 Y: o* D" f3 `$ {9 Q* G
9 n" h; H7 U. R) q1 R+ E' U

9 ~: g  d$ u# {! S8 H" G
; ~1 H$ L. I4 l/ D$ o# V) x8 I0 D  I8 j% B/ V' @

$ c2 h7 S0 r& `# d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
! j; H/ M& Q! @# n( hcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit1 O/ @$ K# J7 l2 l  a. a1 A3 c
/ ]3 ~7 [* X9 _9 r4 d9 U2 \
  1. REPOS="$1"- X. v' Z( P) m) b# m- y
  2. REV="$2"
    . }8 q5 L' U& m6 e) _, f/ d3 V
  3. TXN_NAME="$3"
    / x  m$ f+ V+ o' T/ V
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    4 J( K7 f# S5 Y- Y
  5. MESSAGE="$(svnlook log $REPOS)"/ q  J) l, \* |* v- \9 `+ c
  6. SVN_PATH=/usr/bin/svn
    " @% Q9 `. A- b: N3 E+ d* o
  7. WEB_PATH=/usr/share/nginx/html/ssyleo# E. @( R9 ~5 W+ x# }( q3 D6 x
  8. mkdir -p /var/log/svnlog
    5 c, S) Y* C# `( B- C) C
  9. touch /var/log/svnlog/ssyleo_update.log
    / Z1 @. Q) w3 Y
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log8 W& o: |, \  u9 ]; ^7 E) e6 ?
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    1 b: k& |" ^5 [1 F% a
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH! h0 p- ^9 S2 s/ j3 o: W, t
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    1 a' P# j6 o4 y
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

' i! W$ n  d' Y% q0 o
8 _1 j" n! R! S' S9 U" H
  1. #!/bin/sh0 Q) l/ R/ \4 g/ p4 E: ~
  2. #设定环境变量,如果没有设定可能会出现update报错0 _' `1 v0 n2 Q0 K
  3. export LANG=zh_CN.UTF-8
      a/ u0 G  u# T* r/ `; j
  4. REPOS="$1": S8 P/ p2 h% P. l4 W# Z
  5. REV="$2"9 j% R4 k- D4 C
  6. SVN_PATH=/usr/bin/svn
    + V% \+ g, A* `/ l3 P2 M
  7. WEB_PATH=/web/project
    * X* U  S  P1 O" ~' l/ c. J8 y! z
  8. LOG_PATH=/tmp/svn_update.log
    ! ?* W3 n' `; _8 W' A
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache) e- U' s$ u  L* I
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    / L% c6 m. a+ o* v
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    1 g) @' f6 S) I9 g3 }% a
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH7 k) D7 l0 B8 C) q* W7 v
  13. chown -R www:www $WEB_PATH
复制代码

7 {0 n8 i' P8 x
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
3 Y% _8 }9 k, |2 kexport LAND="zh_CN.UTF-8"
- a5 j' n! h  {2 d+ Y6 W! I2 e8 NREPOS="$1"
) m% K4 i; \0 _) hREV="$2"4 h0 T% D" m. E% R& ?$ I4 v0 u
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# B0 ]$ ]# U1 c1 l
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ R# f; w# i5 q! P; c; u8 d

  1. % S4 T9 T2 _! ?9 S) X
  2. #!/bin/sh
    ' i* X6 A" y8 w, p& [0 f+ K" L! x' t
  3. export LAND="zh_CN.UTF-8"" B" t  k+ `, O1 z
  4. REPOS="$1"; c. C  S4 W0 t" m6 \3 e' C) Q
  5. REV="$2"/ g* t7 W/ U1 f. H. t( w  O# ~
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    % o4 c" S9 y5 G- Z/ {' D) w
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

5 N; e% O' P) z! ]0 x, V( G2 b) U# n! `
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-18 20:54 , Processed in 0.131687 second(s), 19 queries .

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