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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介" [3 c; U- C/ e
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
1 k5 q6 s: J, C0 G9 F' G* D' [# b1.准备工作: u, {0 [. [+ |4 L( ?. {2 g
一台centos7 服务器 一台 客户端9 n: [8 n* K" G4 I0 f
————————————————, `1 _2 r) n6 n" B5 j
1、验证是否安装了SVN
6 j! [* Y3 O7 V
8 {" O6 J7 I; m# z3 z命令: # rpm -qa subversion
& e& ^$ ^5 H! X$ `; M; h' U
) A4 @# X* z9 r+ s4 Q  ]如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_649 k! F. \7 o1 n# T# _+ }4 T
/ u6 G. d5 u1 B& |6 ?5 G
否则,空白
7 x; s- @9 I* t, o% ~3 T: `  Y8 c* ~3 c! o* \7 a8 A) O" ]! |
2、安装SVN的命令
% I2 Q: f' l6 B, \( T1 g1 c. m5 c% ^0 ]2 \7 M5 {0 m, d
# yum -y install subversion
7 V. `5 @5 I" _$ P  f5 n. L2 G+ p: S7 x" n; D
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录: M  |& I5 I. m! z& W
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
% N5 P, q) M/ w, w  Q' `; X9 L
$ E- Z5 F7 `) E7 m; ~然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置" ^! H# U% C; J, Y0 T; E

/ y- g! H5 c& g4 h% V, msvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)2 W) C2 r& R: I8 t7 D1 W

* Z4 L2 N. D% `  q1 X+ ?5 S' |) J& [3 r& j& y, i( B/ ?
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
6 M1 ?. _, [& y5 b- s% f5 Y. F* G9 Q4 h' S8 i6 F9 M
# password-db = passwd/ t- U+ y$ T9 p
# F  E) N$ i$ [& ^$ p
# authz-db = authz  y4 U6 }2 P$ u) v3 w5 t& n5 M
* K9 J+ M$ ]+ q7 c" B' }7 ]( W

# K% F0 N3 Z( B  O1 ~6 g然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效$ x) y2 a$ Y% c4 f
6 q5 _6 X7 w9 ^+ A" C
登录名=密码
9 ?- U0 N. o+ f* F! a
  O% I5 I4 p$ G8 q" iuser=123456
3 p# w; |3 e4 J. w8 x  Y- G! i
$ p# X4 i/ C/ q3 a5 y  I) ^4 U2 c4 r) Q5 p4 O3 T; w
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)4 e+ L5 l1 G9 _& E7 [) R
' u/ @% N: H4 `! K# n7 @
# * = r0 _( Q7 ?! Z$ s0 k

3 z$ y& U$ Z, k5 o% }[/]9 E/ f6 p& J  R% n1 {
! @4 Y+ c1 f1 \9 v
root=rw
% B& B# P& q/ G
# \& h$ Z4 Y  L+ O这是用户的配置就完成了
2 m, e1 F5 C+ j; Y( \9 z3 |; O9 p6 q. C% b
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
6 B9 A8 |6 Z" [/ Zsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
8 _! \4 k5 X- n' m; @3 S' M9 D" V$ K# E) R3 t$ ^0 T+ W
使用此命令开启svn 根据自己设置的目录自行更改% N: k; N' w/ Z1 ~$ g0 X* ~0 ^) [$ y

  o' f3 b2 @! w; b( P使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了7 S5 s' M, i! G6 ]' k  \9 l- d
  o$ l5 Q2 d0 |, V. V, Q
: ~& d, J% N$ _5 C: }8 r
win下载svn工具* P8 V% W& }/ N% G6 L. }, Z

/ l) T3 |3 _5 K& p接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
1 K$ u7 J) V+ D. m
9 `6 b+ E4 l$ x2 ?& ~% c5 E( L5 O( _* J- t6 e% U
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码% j7 L/ O1 ?& Y5 e# C
输入你的svn地址 地址请根据自己的设置自行更改# }3 b& d4 I; g9 R

/ v7 h3 i( a1 ?6 D- c( i: _0 L" J, r3 h$ \, h2 f7 |7 Z/ V
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
% O# b- r3 Q! {2 S: {! O% v9 a- Z# l$ X

3 @8 v5 a# l* k3 n  V) \4 c' C(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
' C: j/ a4 u% K! G
! T+ M: c' X- ^0 H7 c$ e$ u/ B" f. A0 K7 ^* ]) R6 b  x1 |) K
% l* M6 S3 t+ R% P
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
+ _# X2 d! a% t5 v$ x0 t
5 K  |5 T- }* r* N这时我们保存在版本库的代码就会被同步到网站根目录
& R7 L. y3 ^* X: e2 V' o' d' ?1 J, Q" Z$ l( M$ X
" k6 r( ^/ o0 a9 B. y- G

' \" o& ~6 }. U. Y! `9 ^6 o& w5 C+ L8 `' m% U; E0 D
. g+ O4 }  {- L; R9 w6 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
* g' X: B6 m! f! W. c5 lcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
  D2 ]& s% d! {, s/ Y! O, ]3 q
. |2 n. I( ]+ X- _2 @. d/ `
  1. REPOS="$1"
    # i/ z& E' q+ D  k- S1 A
  2. REV="$2", h* e  o" E- ^+ ~7 h! j; R
  3. TXN_NAME="$3"% G5 H9 [" m# N( d" `* `+ g2 g
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"" r0 q: ]  q, A! l
  5. MESSAGE="$(svnlook log $REPOS)"
    5 G) C" I) W* ]5 b/ N3 K
  6. SVN_PATH=/usr/bin/svn5 j$ D: v) h! i4 }- N
  7. WEB_PATH=/usr/share/nginx/html/ssyleo8 w* p+ t8 \) L/ A
  8. mkdir -p /var/log/svnlog& D! f+ a( }2 M5 j4 ?+ N
  9. touch /var/log/svnlog/ssyleo_update.log0 d) k3 `* n- D
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    & T) B/ l5 |, z
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    $ @& P, y  Y& n9 P6 h8 C9 s) ~
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    4 ?' X& P$ U) C" ]% r" [. ^
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH* r' g0 B7 x8 Q% w2 r, E$ N
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

, s  I/ C1 X6 q7 G! z, M: v+ N* Q1 q/ }
- m5 E4 b- ?+ i8 E1 R( z
  1. #!/bin/sh. b! [# ]$ a6 y( t& J
  2. #设定环境变量,如果没有设定可能会出现update报错6 c, H# B6 G; H8 p+ Y- _  ^
  3. export LANG=zh_CN.UTF-85 s8 b3 r) z  D6 o
  4. REPOS="$1"
    0 p6 ^3 Q+ P" B) ?
  5. REV="$2"! m- C& m( T2 {: w' c7 r/ H7 H
  6. SVN_PATH=/usr/bin/svn: T- c3 v) E, j( Z# Y" J* P3 ]
  7. WEB_PATH=/web/project' \% {. o6 z- p
  8. LOG_PATH=/tmp/svn_update.log
    8 Q9 T3 ]$ _5 M5 R
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    8 s& ]8 `; L% h# K
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH) \) m6 F  I9 s: j8 S% D- J* x; z. ^/ \
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH9 q5 M6 b3 w4 Z4 c2 ~
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH; G; _8 x1 f" y  _4 `- R
  13. chown -R www:www $WEB_PATH
复制代码

# u2 D1 i/ u& m6 `1 s
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
/ {4 p/ @) N/ i* P4 }export LAND="zh_CN.UTF-8"4 C' o! {; c& T  l, i5 T: x1 x" Y
REPOS="$1"" h+ x0 |3 W2 J7 H
REV="$2"3 J% k: a1 V  M
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ E% I2 [- e) S/ _7 w& \! Ysvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 ~" t) i4 ~! N# L1 W8 W& p
  1. - d' w5 b; ^8 v& @) n
  2. #!/bin/sh3 ~. q+ G2 W7 T0 Q
  3. export LAND="zh_CN.UTF-8"" x0 t! \  p- w% x. J
  4. REPOS="$1"
    $ e9 x# h3 ]# ~* d
  5. REV="$2"
    6 T* b/ W7 |7 r( `5 v
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 e2 z1 E7 F, b; f( @0 ?$ Z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

" e$ @( {! d& J  d& R! ^2 R; ^/ \" w5 a
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 08:09 , Processed in 0.066315 second(s), 18 queries .

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