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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介) l2 r3 G. y1 C& L5 K
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)+ i0 e, ?8 q* S5 i/ J" ]/ B" n; K
1.准备工作
" A$ ?7 E' B5 K5 v8 p" y8 H一台centos7 服务器 一台 客户端1 d/ t- n9 f" p( s" V- E
————————————————
' [) _  U+ ~, X" l1、验证是否安装了SVN
6 j# @* [" h9 U# s* Q$ g$ j6 s! L+ Z
# u8 k* |# `1 P, I0 O命令: # rpm -qa subversion; N1 Z9 n. R$ ]* S' x6 h

$ ^/ K  t3 R# g7 d$ n% {& R如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64% p5 Y/ }# D, _1 K

& f/ Z7 q/ u6 Z1 p否则,空白
8 h: J9 e& |" t( E2 D2 z0 g
4 `/ t% |  z) T6 y" L2、安装SVN的命令
6 A3 F/ x+ b0 |. }( H
! d2 A$ N. D, c+ m# yum -y install subversion
4 d8 F* z) H/ r& ~( Q, d
, Z3 n( j7 a$ Z" Q: n" U( F接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
8 M. t7 W( {6 O2 w' U- g# D9 |创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了' ]+ N; V: Y2 {& W

, p5 d+ w- X/ r9 O1 G& y然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
0 \+ m4 x7 U7 o; s
) A8 i1 K" Y9 w6 P" @" \" Jsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
! H% H$ [+ @5 m3 B& n- N) B/ g5 X& T: n2 c, |0 a

  i2 i- J( Z* c, d; u首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
1 P' ~6 o, k+ d
& |2 {0 Z1 Y, z( V9 v# z4 N' K5 p# password-db = passwd& L% L, I9 H5 ]/ a, m
) c) l& i2 D4 q1 \; h$ n8 {
# authz-db = authz
6 d2 e7 f& L* g
5 t: q( I- j* [  v2 C' G) x& p# H$ N! y6 V1 t7 j& Z
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效6 E( ~7 p' ^9 s' j: C9 {) a2 c
7 f' p) M6 V+ T9 C, c+ R( e% B
登录名=密码, W4 Z$ p6 U% W) w8 K

: C) P7 X+ Y8 w9 ^& Y, V1 luser=123456
/ ]- }7 E- A, t2 u4 ?" L- M0 K$ o7 f3 s  }8 \' z8 Z( H7 o0 X4 _

& m/ k. U* g6 d& U最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)6 f! K3 D, @1 E; v% Y' C
1 n+ ^& d. |& d
# * = r
: w* y6 a# V+ r8 e) `
& j# g1 H2 z; B9 q6 c[/]
2 k7 b, F+ n* @/ t2 a4 ?1 g3 Z0 z9 \( h$ B$ \3 _' m- S4 I/ U* W3 P
root=rw
; {/ J( j" x' z- }
: ~% r" m" B. x  v7 \% W' F这是用户的配置就完成了' n8 f/ W8 ]) E0 W8 Z! V; p3 S; _

6 H$ o1 V( X9 I- u& V; {接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 R$ d1 j$ H( v5 C9 F$ h" Asvnserve -d --listen-prot 端口 -r /data/svn/ssyleo; {! ]( H" s# @5 ]' Y

9 x/ }* @/ J! Z# d5 W" E& [) e! q使用此命令开启svn 根据自己设置的目录自行更改
5 M- p" f9 Y; z( d* a5 o) `7 l1 S% a9 Z3 k7 I: t# [5 ], ]
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了. j( H9 h9 X) D1 @( \

' R: k1 P. E  U. ^. b" ?% V6 X( _* @5 ?2 U  L
win下载svn工具
  \3 q$ P) U! Z" g* {7 M8 m; e, i5 r2 B1 a6 ?7 {
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了/ O1 F7 d+ s+ s

& h# P9 [0 ]& h( E8 `  ?" `8 A3 }! u& z( Z& H$ D6 D
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码+ c' v" O% i5 d% `0 M
输入你的svn地址 地址请根据自己的设置自行更改
& N$ O6 `" J( L3 d( \+ D; j  c# r$ q& B4 ], x$ K8 I& D& T) ^

( W/ n/ K& t; U. a3 I然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
' k: K' |1 z# z! h
7 c) [8 h2 V6 E2 w/ v
, l; a+ L6 ]! X. V* i( d0 v  [8 R(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)( v! ~& _9 A6 N
: h% z7 `2 ~+ z# |0 _1 `1 b

  L7 o( ^/ F: a7 ^8 V: s0 A9 V& m* d- A% V+ {8 G' Q
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
. p3 X" _: h$ R7 @( F6 y" W
1 s0 w6 n1 ?& V% G8 T) K$ [- P这时我们保存在版本库的代码就会被同步到网站根目录  G! g+ |& E9 s
& B/ ]2 m# f& R, l: [
% ]8 F) T$ I1 O+ i# {
8 ]- L  B$ T! [6 F/ E9 r

( E7 i9 u. E- ^" `5 ~- j9 A# t5 s
+ @$ P5 k: K, D% m1 A$ ~! }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
* K; D2 n& @; o5 _' C/ T( A4 P) ~cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit6 v8 {$ ~2 t; f2 }

" d8 p3 ]5 n  ~1 ~2 s! B, Q
  1. REPOS="$1"7 F( Z4 I% _3 f) E: }
  2. REV="$2"/ E% p; W/ |/ ~1 w# S/ h6 L# b/ I
  3. TXN_NAME="$3"  k: R8 ]0 m* E
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"( j* V( D7 l3 o5 }: k1 h7 r
  5. MESSAGE="$(svnlook log $REPOS)"/ k9 f$ H; _- {3 S$ L. i( H
  6. SVN_PATH=/usr/bin/svn
    - c7 W7 ]# K/ n4 {& n
  7. WEB_PATH=/usr/share/nginx/html/ssyleo1 u/ e1 S2 ~6 j3 Z! D
  8. mkdir -p /var/log/svnlog
    ( j5 s3 }+ T. Y. J7 Z" c! \+ l
  9. touch /var/log/svnlog/ssyleo_update.log! r1 m& U9 @& o
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    # ]# O+ l; r. d$ d! G" K5 C
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 X8 X; Y6 D0 {9 a) ?
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH  }; ]% ]3 ^6 q1 O1 ^
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    5 ?/ B- ?9 m$ ?
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
" A8 R8 z0 H& ]6 i4 ^
4 \( V7 ~! l9 \, k$ N1 W' H
  1. #!/bin/sh
    ' M4 v5 @. K9 i! N- C# ~+ F
  2. #设定环境变量,如果没有设定可能会出现update报错6 l; r4 U  Z! m7 a6 i% X4 V
  3. export LANG=zh_CN.UTF-8
    6 u" j. h6 f; M: F
  4. REPOS="$1"7 z4 W& D$ f2 v$ a. }* N9 }
  5. REV="$2"7 z* Y- ^* w' T* ^* O
  6. SVN_PATH=/usr/bin/svn
    / C6 e9 ~" {1 Q: b& e( G
  7. WEB_PATH=/web/project; Y$ S* f! p; e5 g8 Q2 A
  8. LOG_PATH=/tmp/svn_update.log
    - U( B8 {; Q3 {1 y$ b: l# k$ W
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    * f( i2 p, L- z' d, W
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    4 h- {) B0 |$ ?5 J
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    9 R1 d7 o( {2 s, h- R5 q6 h
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * \# v1 S: g1 ?5 i* g
  13. chown -R www:www $WEB_PATH
复制代码
) x) a; g0 F  t: m5 T. j
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh9 `$ B8 O2 k, w: b& Q
export LAND="zh_CN.UTF-8"
5 ^! e' b$ v4 f( ]7 d6 eREPOS="$1"
( {+ [* E. Z1 D. o! q. A; m+ R: OREV="$2"
9 o! Q) A; `, Q6 ?/ c2 I4 Esvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( r7 c- y/ H1 s5 s! y0 ~' t3 [svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ ?$ ~: b9 v8 ~( v" q# A
  1. " N- z4 K+ H% D; y
  2. #!/bin/sh5 }& j  I# w$ g
  3. export LAND="zh_CN.UTF-8"! G& d) Y( K0 J$ {
  4. REPOS="$1"8 v7 N# X" G6 k
  5. REV="$2"
    0 Z9 _0 r  B& b5 q0 Q1 L; N
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    / `; B4 o6 K9 _2 a! Z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ x( I* ]8 p# {9 y# c
) b+ u. T" X, ^! E
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 17:22 , Processed in 0.070764 second(s), 19 queries .

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