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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介1 o, U  y& A" i7 `! m! {1 c
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
$ e" u, C5 T: x) [1 b1.准备工作
- B  ~; r+ v" `$ S8 e一台centos7 服务器 一台 客户端
4 ~9 n' U- W8 W7 ~% I1 e————————————————
5 A  `+ k. i2 D" u1、验证是否安装了SVN
8 U1 T1 j5 |) u% [- H8 K' u4 f! L! n, r  ~$ t- g; p+ O& m
命令: # rpm -qa subversion
1 Q; K% \" W( v1 M8 n  R- s( I# R9 S0 V( o' s
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
) O: H) P- r3 b3 \; h0 Q6 C+ O3 N4 F% S0 D1 b: n, T7 r
否则,空白; f, i$ X& Q) n6 R
& Q# z' R& Q: W9 G; ~7 z* R
2、安装SVN的命令9 s3 q5 m, O3 o. l+ z( |2 h
; k/ Q/ M- m) K* w' V& H
# yum -y install subversion) H- ~( R* h! o7 J! b4 l
2 T7 N! g; f6 W. p/ h/ }. B
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录9 R  Q+ ?1 `) B) F" R0 T
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
/ i+ e0 n$ V3 d6 S; x5 f" b: J' @  Q7 Z# K  B3 f. c- _7 m% M
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置; ?$ w& _+ W6 T, O2 A5 Y% C
) T# W$ S5 s' D
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
+ C3 _+ y) J/ `/ R0 A* P
! S1 G4 p: ~: ^, I% N
: v% m  C# T, R8 ]首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格! J+ @# m6 U. H- b0 }# E! F
6 c4 |" Y+ T7 A2 K( y
# password-db = passwd; a" w5 ?' Q5 s  m* L  ^1 t
% k) Z9 X+ L1 C7 y" B) X+ Q) `( o
# authz-db = authz
' p4 ~$ K* G+ j$ [3 z9 G- f" Z* Q6 l2 |) I6 x
0 i" x5 C8 G  _3 R8 l
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
2 B3 H+ N3 t  M+ c6 K! U
; w  S7 s; s( e) ~7 D! e登录名=密码; D# E( x+ U4 d3 y) @& t
+ U" B3 }6 P$ j1 O
user=123456
' \' h" Q$ v* T& C& q  x
% Y8 N- q& \0 o; m- v3 c
" Z- d3 q, [0 e4 N最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)- L! j9 s" [, P! [
& f( C2 n8 D1 m  x
# * = r* I" g* u" l. M* c+ D( ^2 f
4 `8 }. k- W  A. j0 l. N% ]
[/]
- X; [0 g% k+ _& e7 C- p. p9 }
4 _8 e2 H' @) e: }6 X7 sroot=rw
( T$ X( Q! k0 t7 a2 S% p1 r& d0 u1 l
这是用户的配置就完成了
/ ~: d. L& S/ L$ k+ ^+ q! J4 b) Q- V6 S1 U
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 U+ _7 O4 R+ j6 R0 ~7 h  Vsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
2 j- o# w5 a3 _7 B! M& _) O1 W+ l$ S; O
使用此命令开启svn 根据自己设置的目录自行更改! G; W% ?& [4 ?

! s9 k( T  M* X$ y使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
9 o1 r5 G! p- p& ?) }# `' \1 F, D6 n# U: x. V# m
1 P9 N- ^, Q& R* G" f- I8 [; Y
win下载svn工具
9 x( S4 e$ r* ^' W, [# E3 {7 J: S( t* W7 o( U
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了- ]. R0 R0 |7 U* n" L- k
7 `, [9 W4 I6 _( H) F  \7 Z0 }* W
8 B5 k4 X" T$ }. W
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
# s: B7 s3 U6 Q  v输入你的svn地址 地址请根据自己的设置自行更改
& ~% o4 E& s! r( \
2 x2 a3 V8 y% f5 Q4 H+ |. p/ [/ i
' A5 n' T( k+ i; c  p  o, U然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了2 S" f2 F3 U& c9 B: M: n! }4 S

* [/ F' J: C' t6 C; p2 g2 i9 U- n) b1 |- M
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
9 v# r( g$ k$ t& A: J8 |+ z2 q4 F. o, R2 ]# E; L/ m: w
( |; e. O. _6 }
  o5 O2 u1 k0 ^- d+ x
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
8 r6 ]6 j9 A4 }% r
5 F1 ?9 Z/ B( x这时我们保存在版本库的代码就会被同步到网站根目录' s' L/ Z3 }6 w4 b' D* l+ m
% Q) ^3 Y9 R7 ]) ?7 F
* H3 F6 Y, t1 y% `: Z' ]

* p8 S) F! {! Q* _" q1 j% W4 z/ d
' W) b+ N  @& e0 |: j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
* g0 W  c1 `2 Qcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
  J3 z1 S0 A0 _3 T) A/ A+ ]' `7 d' }! K% z
  1. REPOS="$1"
    - S0 _; w7 M$ w) e( Y6 _
  2. REV="$2"
    2 v( m3 G" K0 _5 l
  3. TXN_NAME="$3"& Q' l' M" L& C
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    # h, v3 m. W$ C0 W( G
  5. MESSAGE="$(svnlook log $REPOS)"6 ]1 u8 |/ P7 i
  6. SVN_PATH=/usr/bin/svn
    ( N3 o( W0 l' {$ b5 C/ `" b
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    ' F3 ^  P: I5 I  [2 r) }' R1 |
  8. mkdir -p /var/log/svnlog- i# \( O& A0 K) c6 v$ H' k
  9. touch /var/log/svnlog/ssyleo_update.log
    7 `; ?8 c: F; \
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log! @( I3 w: |2 o0 b) J! ]& U
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH8 G: {/ l0 H+ Y# j* D
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH, v& q( j/ D5 E' ?
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH: k6 ?/ W7 w( U* P. g# t% |
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

( q9 E$ u, b2 r; y: R
  Q, k% I8 B7 T  ^9 H
  1. #!/bin/sh
    9 u1 L: W  R' I4 K& f; D
  2. #设定环境变量,如果没有设定可能会出现update报错
    & j7 D' W3 b1 W/ E6 {# }) g. H
  3. export LANG=zh_CN.UTF-8- C6 `0 Y4 v0 F! o! g& P
  4. REPOS="$1"; z2 Q$ Z, L' P3 C+ F. |
  5. REV="$2"
    1 D% |, R+ L  m- W9 H
  6. SVN_PATH=/usr/bin/svn
    1 w% `% Q6 y* V
  7. WEB_PATH=/web/project" _* b: Y1 D" r9 v# {4 ]
  8. LOG_PATH=/tmp/svn_update.log( D9 J, I3 T1 n$ D
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache! q7 s, N2 V/ x1 G; }- b3 J- y% v: w
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH+ I8 o" v4 r$ h+ a0 c
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    6 ?  y. c" X/ N0 F/ o" Z$ |1 _
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH$ _! ?3 {5 d  O9 K3 Y: o$ ~
  13. chown -R www:www $WEB_PATH
复制代码
. Y% \3 t$ }, s5 H* X
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh8 Q6 z8 W4 o2 Z4 v
export LAND="zh_CN.UTF-8"
8 p7 X6 \) A4 G& H! ~  f$ ]REPOS="$1"0 i0 ]& ^- R1 v# R: E# l$ n3 R
REV="$2"/ q4 i' U- B0 _
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
9 A; d2 I9 {9 b- @! y7 l$ Tsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 D0 c4 k1 @+ Q: n
  1. ! e: S; P( {0 o! _# L
  2. #!/bin/sh4 q4 A. \5 u4 j; s- A8 }
  3. export LAND="zh_CN.UTF-8"* n6 h8 ~3 ?$ h, H
  4. REPOS="$1"$ U2 u6 O. Y4 T- z' M6 I+ m' a
  5. REV="$2"+ G- |' x/ A$ b3 T. q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    9 g' }' X( V. R2 a
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

& C6 g, c; A2 J5 a( o, M9 S7 x# u% X7 l+ B' E# q( Y
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 22:39 , Processed in 0.128810 second(s), 20 queries .

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