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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介6 S0 g/ N1 n( {8 c
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
" u* }  ~( q' U1 @1.准备工作
! E& i) p3 [5 u7 g0 C7 o9 x一台centos7 服务器 一台 客户端
. ?) A* ~" f2 f+ z. w6 s7 y- ~————————————————
1 S- ^* [. M' m( j% y2 }4 g! \1、验证是否安装了SVN9 z0 d% U5 l% h! @- v5 ^

7 z9 V% Z; Q  _0 |9 `, v( n" b命令: # rpm -qa subversion9 D- j1 i8 G$ n) R1 b& r  T

* P) w( k+ {" e( A如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_640 H* V  ^1 E6 G* h( x) X

: V* K$ ?$ a' G8 V( g  F0 i1 l否则,空白
! l$ O# R6 r5 I$ {! a) k6 w3 d* J1 e4 n2 V! J! p* A) t- D
2、安装SVN的命令
* x) W1 \' m0 k5 n: Y* V% H7 ?6 V! A
, L; I4 @# }/ z0 Z7 l4 H- y5 ]5 T" o# yum -y install subversion
' f6 h: [! J" b+ A
# Z( @' \' }1 D" @( v  G接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
* ]& E3 h$ ?3 U# W创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了  h8 R+ a" E) r0 ^* |# K$ M

+ Q8 A, s/ o9 z, a) W然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ @) A, r& c  [3 p6 `  U) k- ~
- z; M$ p. V3 @6 y5 Zsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)8 ~+ V8 ~" e8 w* i, n2 I" f

, S4 {7 r; X& J1 u( o9 W+ e) }9 q3 m- w6 `+ d* |# q
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
; p- P3 E( ~  T) {- T6 ]# c
, C0 E4 `' \, n( O2 D" x/ f6 F( w6 g# password-db = passwd
) C, ]: }. X+ u' |; Z9 v$ |+ h9 Z- g: F/ b5 n
# authz-db = authz! t" q  i: W+ j- |0 x% n. o5 n1 J% e

0 Z) G' s" B  B7 L
2 M0 L0 A2 R1 O" ~3 R1 @5 H. ]+ x然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效1 ?% o  @% m" R! f+ I" o

+ q. C7 `+ G& i. U3 s2 C登录名=密码5 u9 O$ M+ R; n+ @! d3 G3 H3 w
, k1 l- }* T" j7 f8 ]; ^/ A2 d
user=123456
) M( `  b0 E; B: A6 B. t9 T2 X+ ^! V* v0 Q
/ O2 j6 g- n6 G
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)6 y' K0 V$ j2 G5 b9 ?- {, N9 N$ v
8 W$ E# Z1 s  ^4 p: f+ a" j
# * = r* j; ^& [0 P: }. W9 E
0 b" t% P/ M# M6 r
[/]
" O! p% l5 t$ M! \( W  B; K
) l0 Q# K% p& eroot=rw
5 t4 _: T7 U8 S* }0 ~9 l2 f
8 w& N  F- O6 R) ]这是用户的配置就完成了
6 d. n% H$ w- ^1 S5 ^
5 B  l4 R( Q0 Z- _0 a/ }  t0 {接下来我们就需要开启svn svnserve -d -r /home/svn/blog * l% x/ h) G+ P$ S% S
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
3 L6 e6 \- a8 \
+ K- W2 [  V: ^使用此命令开启svn 根据自己设置的目录自行更改, }& `2 R, X# b* P8 E
( |9 Z. M6 I3 ^; H9 {
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
; a- p5 \  I% E9 M2 B+ t) ~  ^" ]9 j: Z
  c1 `7 J0 E* V5 \  K- f
win下载svn工具
8 {3 D7 p$ A9 W* b; T7 {7 D; B2 J2 j. I3 p1 T, ~
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了$ z" Y8 z7 x3 h
/ X" n9 s" j; i5 R

& j7 G; M( ?& i重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
% M) l5 A4 }8 E1 q输入你的svn地址 地址请根据自己的设置自行更改
! Z& M7 h( ]0 v, [; e4 {/ c: j3 O' {5 v- y5 _- D5 I" n0 }# U

' C& H9 U6 R& V# x1 p然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
" ?' U* X/ V7 h1 B' y7 H" |2 I  R. O' ?7 |2 J
' _4 F# f  g& y. R) B/ P
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
, D, a* g+ m( G! g9 f3 j) c& p* s- k. u. _/ K4 |: n' v8 t- B
4 G2 l/ m! c# J: Z% J* z2 t

3 c* _$ o$ a$ k- v9 S4 p可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存$ [1 O8 j. s$ ~) F

% p$ A: A+ s# h, l* q2 F这时我们保存在版本库的代码就会被同步到网站根目录6 Q; U5 Z1 P2 ?: X5 W
( [' g) `5 W8 q6 F

4 Q, e  y0 o( i8 U$ H0 J6 a7 k  z; |* E/ s' q6 b* w- `

: F  v) m0 B  A% r
6 w! N- v3 Q, `$ I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
/ b& j9 u% o/ M4 I& M" X' `export LAND="zh_CN.UTF-8"
" K; g; x/ S5 Y  b6 B  D% G3 }REPOS="$1"
$ N7 R2 f# F, h  x% kREV="$2"
# [7 r' q+ Y' ysvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache, A2 B6 Q  d# n
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" S% F' ?7 l% q2 ]! ?+ [

  1. $ |" t5 y& l: X/ d" b
  2. #!/bin/sh9 v. ]  I* U+ r' s7 y# O
  3. export LAND="zh_CN.UTF-8"4 D* N% b( y  ]2 u% n7 N
  4. REPOS="$1"" `4 G7 y6 G& A2 n1 M
  5. REV="$2": l* z. O3 F6 F! d. n7 q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    8 n0 _8 X6 R$ V8 l7 H  p
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

* k9 W" \8 W# M( [+ J: q# q4 z
* v5 `8 s" o4 p3 `8 [: q. a
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
3 T- u0 b' v! mcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
5 O0 F9 i' R3 K/ I: l+ p' c2 L- G8 U2 y" V2 n$ q
  1. REPOS="$1"
    1 E/ M$ @; L4 d2 u" l
  2. REV="$2"0 E6 [8 l' `! o
  3. TXN_NAME="$3"* F' o( ~& M/ I0 U  N  \
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"1 _. O1 t- y& F
  5. MESSAGE="$(svnlook log $REPOS)"2 s9 a1 b! y9 ~& p
  6. SVN_PATH=/usr/bin/svn3 f  `  m8 m( ^$ |; v" l9 Y, ^
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    3 |( U/ V$ T+ A! N! |
  8. mkdir -p /var/log/svnlog: e4 u$ Z$ G% K* d0 r0 ?
  9. touch /var/log/svnlog/ssyleo_update.log9 F% D2 Z1 U) {) A& q2 c6 l4 D6 `4 v
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log9 R! X$ w, w3 p) v1 S' }
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ' j* N+ A$ t& B! X% Q+ I3 ]
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    6 p" Z5 r+ O2 }" u7 ~
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    0 e! t# ^! Y5 q3 w: k: Q; M! t" M
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
! \5 t1 m! l: e4 ~% D7 ]
( l+ G1 M& d! r) T
  1. #!/bin/sh/ g) j# g% i9 `. ?! m& M1 B5 Y
  2. #设定环境变量,如果没有设定可能会出现update报错; o3 ?$ W4 k6 P) D: P6 ]$ D
  3. export LANG=zh_CN.UTF-8
    . q, W6 [! N. M9 `! T
  4. REPOS="$1"* s3 I& ]  n% o" ~2 e+ c8 u
  5. REV="$2"
    1 M4 s$ O4 i4 q, d
  6. SVN_PATH=/usr/bin/svn
    : W$ e8 c  T: o+ N" i# d1 m# e9 b) G9 `
  7. WEB_PATH=/web/project7 {9 e/ A8 k) W) R' y2 _
  8. LOG_PATH=/tmp/svn_update.log
    # r+ l3 k7 d8 I( Q) g& C
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    . U$ g$ m% c" x
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH4 o" n; h5 }, E+ t
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ; w) o" }6 E  D
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ; W+ z0 s/ q( ]1 h
  13. chown -R www:www $WEB_PATH
复制代码
9 b6 r, B1 x8 b+ r; n, ^0 v
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-5 01:11 , Processed in 0.060871 second(s), 20 queries .

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