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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
$ Z0 ~- \, @: X7 T8 M1 bSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)+ l# s1 {1 a7 [7 a0 g. m6 o0 P
1.准备工作
$ e5 Z- _" W8 O0 M一台centos7 服务器 一台 客户端  w; i, P  U1 M+ G% N: T
————————————————0 t9 p; k* E2 x; G' u
1、验证是否安装了SVN
0 k+ C9 H6 n5 c% p; u4 }1 I, t% H) A, d  @
命令: # rpm -qa subversion
2 p0 Q6 w, p4 D. }* V
; i& L& y2 Z! P% ^5 N- z  o. D如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_643 W9 X& g, Y0 O2 N" H2 ^4 A

. s; k( {  d* t: o" H' E; [否则,空白+ m) A. i5 r) Q- h" S

3 `( c! ^9 A  C2、安装SVN的命令
5 @2 B% X5 s/ E# t, l/ F% z
0 G0 |! d" b# |0 u( B# yum -y install subversion
1 B3 s1 F! `* J3 `% T) m
  {4 o( Z+ y" I接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录3 I1 q7 u% \# j0 e- @
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了& ?2 l2 h# s1 I& N+ x0 C( m
5 R9 h" E" v- U- n0 A  c6 U/ o+ R) O
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
$ n" `! s7 U, A: b% U1 i' P1 e! M( a* @' {4 P1 V8 p$ `: F& O  S: p9 M
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
: `7 p" _# D3 o5 v5 O/ S% e1 D
. }; [6 }: c- o* g( ~) ^- Y, x* `4 Y9 u' O  n# W
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
( |& ?& G$ D; Z- {/ Y) J4 ~2 P2 I3 d, X+ p. L- Z
# password-db = passwd
6 m  r/ ?" G8 j& D
6 ]3 K% O; n- `7 [% b2 f$ D% |# authz-db = authz
/ P! `7 p8 s9 w/ z( N9 i  [* R: x. H& b5 y/ N! e$ c! s

' R2 X# p7 @6 u  @1 u% Y  _7 J然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
  h/ G- i, k1 U8 K4 k6 {9 c
% Z( \7 }' u+ M6 A9 Q& ^登录名=密码
2 {1 ^7 j$ N( ^& ]; d. w
/ M/ c0 [8 Z- iuser=123456
* m7 C, c( a& P7 V
% F& X2 L* E6 L# g: U& `3 q1 j
9 g5 p; K1 v+ ?: P5 f2 t  P最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
' J3 h7 S7 \3 y+ J- Z6 c% H# e; o' |" x: ~: A7 n1 z; ]7 x5 m! ?& g
# * = r8 U3 y3 s3 }; Q( S8 e
$ M* U& v) W3 a, n; M
[/]1 C2 j; p% O1 ]! t1 Q7 E; m1 q

& K6 b. H1 L/ I3 y- k! droot=rw/ W0 G/ n: l- K( P" o

/ x/ H; ?, j2 j+ L) o/ Y这是用户的配置就完成了- S  R. }8 ~. }

# q: q) ?5 B- S8 L2 ~接下来我们就需要开启svn svnserve -d -r /home/svn/blog
- ?; V, N/ z# V2 U( esvnserve -d --listen-prot 端口 -r /data/svn/ssyleo3 _" L* u! L0 {0 A; e2 k
' n$ `" V3 D0 p: ^/ e  l
使用此命令开启svn 根据自己设置的目录自行更改
8 ^6 U8 `! B& w- `% d& K4 S4 i: h4 p! l
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
7 i9 J, A, p. z, s+ ?/ I" J0 K4 s1 R* Y2 M# h

9 N4 C2 w6 E# owin下载svn工具
. U/ q" J& ~  }1 P' b
# d7 ]: K* j2 H, L$ r# p接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
4 Q, k% I! J+ B1 `1 ?0 ?4 V0 X$ E
" L& @3 K- v8 b
% Z3 W6 c9 L( J% q6 ^# J5 w重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码6 g& [7 V' w/ Y
输入你的svn地址 地址请根据自己的设置自行更改
6 z8 J: _9 ]6 q  W1 A5 \1 l. p& n# g" [9 ^9 |. U3 }5 ?$ u

/ {* @* u- ^8 Y- E然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了, L5 J0 R! S8 S" z
' v7 m, |* b1 |2 F: @
3 [1 X; n9 q. H  u7 p! |' H
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)4 u: N$ Y: {3 T0 _% q* D" T% t
0 f/ r7 ]1 e4 s7 u- K. s

5 q* W% B/ A8 `! E( P
) i5 m1 J! r5 _) [可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
# Z* ]# M6 v5 F
; u& `; Q. \8 A( n4 S4 Z& O这时我们保存在版本库的代码就会被同步到网站根目录
; u) O6 p5 k, M4 T* D$ j* z' i6 }4 }8 R! X
4 ]# Q% Y, t6 F1 ?: x' d. t
9 l" {/ \; U# i4 v

" N1 E+ h& m- A5 y. Z) o/ u, \) Z) g0 `) `+ {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
. C# h5 l; L( l& x9 }9 [cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
  _) G5 i+ |3 N; e+ o- R( r8 w4 ]) h% G& c
  1. REPOS="$1"* `1 g# R8 K; J# z
  2. REV="$2"
    8 x/ `5 D' k  P2 D: P% q8 n6 S
  3. TXN_NAME="$3"* [4 V1 O! A, ?/ A# H# m& ^+ ]
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"8 B6 T( o: i& U# D0 O
  5. MESSAGE="$(svnlook log $REPOS)"
    " }/ q3 D! b+ s  \
  6. SVN_PATH=/usr/bin/svn3 F& E) ^. _3 ?! H* [: _4 ^1 X
  7. WEB_PATH=/usr/share/nginx/html/ssyleo! U2 `0 f+ w3 ]0 I" T4 F$ K. H" ^
  8. mkdir -p /var/log/svnlog
    * n, V$ U5 r' j/ l$ f5 l. m; F  o
  9. touch /var/log/svnlog/ssyleo_update.log
    # H% X! P; ?' P, V9 r; ^
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log" s+ C3 ]5 z. T
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH9 c- }9 L+ S% O  m2 j& m1 G
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH) Y2 W2 v+ y: d
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH9 b" r# }$ o' v* z
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
/ J1 W1 v' t5 l/ c- P* c) h
/ n4 V2 _  r  ?$ ]
  1. #!/bin/sh/ S: C+ p' {* m1 z% U  l5 D( B
  2. #设定环境变量,如果没有设定可能会出现update报错0 n% R7 n3 |2 w1 b
  3. export LANG=zh_CN.UTF-8
    2 P& F7 ?$ d8 b" D5 y2 t0 h
  4. REPOS="$1"
    , w7 b* l/ N" g
  5. REV="$2"
    5 O: `& ]; c' ^# g% j7 _
  6. SVN_PATH=/usr/bin/svn' [5 w9 B. h2 ^. |" K" r" @0 f
  7. WEB_PATH=/web/project' [: N3 k" @% I
  8. LOG_PATH=/tmp/svn_update.log3 o/ i% u1 J& X& |
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    7 N6 b/ ~+ y1 f# }
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH& n9 H, e6 {- T
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH) K* U7 C, T. y8 }% B
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    8 `9 L. z& U1 G9 y% X- A: [
  13. chown -R www:www $WEB_PATH
复制代码
8 h  |; C5 l; j! W
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh, ]- D" d# t6 G- ^$ X
export LAND="zh_CN.UTF-8"
" ]1 Y5 ^7 L! [6 j  zREPOS="$1"$ D5 p8 t  V/ e4 \
REV="$2"* |9 O# m; q; t1 }0 ~
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% M) k- P* \) P3 ]5 Msvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- F( ]) r0 i  M/ [4 `
  1. 5 \& g; ^, x/ p& g( ^3 ?/ }, Y
  2. #!/bin/sh0 l( s5 t& r! P- k
  3. export LAND="zh_CN.UTF-8"
    8 D: q  S; l3 I, `8 S# s! M+ ?0 B
  4. REPOS="$1"
    8 \; ]9 O. b8 h3 ^
  5. REV="$2"
    5 Q" K  |' \' C# a$ M1 \
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    , Q" N  r! E& z/ p0 Q1 |7 o
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
8 ^; L' I/ T& S
0 y" G( F' c2 f
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 22:29 , Processed in 0.058899 second(s), 19 queries .

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