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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
! N2 ], Y. j7 a+ B% A+ `" r$ ~SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
' T' \$ G2 u* j" N& `1.准备工作
  R: B9 ~+ e2 J8 X& X一台centos7 服务器 一台 客户端  l* f4 Y* T& M: O
————————————————
# z: S+ h" W0 I5 m6 E) d/ s1、验证是否安装了SVN' c% O  z) i0 [% p- w- y& `

* v: _  \. R$ n( C3 F$ Q; Y命令: # rpm -qa subversion& h5 b+ \+ \. m: D8 C* U( b
6 s  a  ]) \2 A1 z9 Y
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64) i5 Z/ k3 a0 k# W, Q

5 x( v. |: |3 p3 j否则,空白
6 j( M/ @. G3 F$ R) b9 c! ~1 q: g
; `& d0 |5 n9 V- P$ S8 i2、安装SVN的命令
8 ]$ e( C! {1 ~
0 \9 s6 b- k# P5 b# yum -y install subversion
5 y  i9 i9 [3 i; @$ ?
1 T. T* S0 n! W: F7 o! X8 W接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& d* j7 O( K3 i. z8 ?创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了' O  n( X( Y* n" S4 |: m6 l  k
; G7 Q' |# F" l5 Y" Y2 l. l
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置8 I# m8 \) i6 q  S# c5 I1 U

- @  y# _1 @$ u0 K! O8 Ksvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
6 y8 x& g) w# Q; [" M! i4 V. r  j/ x9 `# |2 m0 \! r) q8 A
& t9 i. O! S; s2 c4 w8 i
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
9 s( |$ ~' v  P) y/ h8 j+ I- L4 _1 ^3 v2 P) a8 [4 M" n/ p
# password-db = passwd0 H0 S" v2 f6 p9 W
; A+ `7 g5 J" z# C
# authz-db = authz
$ y4 U( f2 s" s! O& A! l% i8 d4 q; f) b1 {. P
* _" E3 O$ P6 h  x! o- L+ @- r
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效# _3 ?& u* [5 U% i6 {5 c
( T- a6 @! d( f7 [% D8 }( m
登录名=密码
" L4 r; f' @# _! K0 p# ~8 O. u$ \4 i# N% j7 l) {- S; e8 B
user=123456
1 R% J( X+ o; _$ v2 E
/ H, \, M6 q8 x* ~/ k
; d' U. V. R$ L% u# D7 Y' |最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
0 e! C9 }- v$ c$ d8 {6 J5 T* b8 S+ l0 y
# * = r. y) s4 x; ~7 _: |- a4 ?0 R
& s" P( g  E. F1 _
[/]+ L. q8 x) [8 q7 D& j5 N+ h& Q

4 z- J! y# Z$ e& B5 `3 z* \root=rw
9 |8 |* _  h, [% r" `' u0 q& {: T8 p( @2 ]
这是用户的配置就完成了# o) U9 Z/ w( e" g0 ?$ T

, R0 K- e0 k9 Q5 Z接下来我们就需要开启svn svnserve -d -r /home/svn/blog 5 R- e  V. z- C- t
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo. N) m. n- W( U$ ]
, f1 i- F1 M0 d7 A2 C
使用此命令开启svn 根据自己设置的目录自行更改0 g8 Z" b, |' A- E! w  H$ W

- b0 n# N  ~& W. y0 `) O使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了4 Z3 m. w& e2 p* x4 k6 D

2 A% s+ x( @) M
2 d, k& J  B- T1 \3 |, @& P6 I9 V9 ~win下载svn工具
) H' ^5 a3 P- p
! Y2 ?( P# H3 U) S# n接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
; q4 ~0 U3 t5 C1 k6 g' l3 q6 Z$ J  r1 C; ~  ~
5 l$ [% G' C# k; p# D& u3 F
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码7 ^/ [2 J, E7 H  \) {9 P
输入你的svn地址 地址请根据自己的设置自行更改7 M( o4 r! L* P' q% K
8 Y# e: A# p; U6 m6 B
3 }# P0 Z6 G) T% P3 v: z% B/ p3 s
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了; B; Y3 q4 U& N( I0 O7 h
, [+ D8 W& o9 B+ l, j: u4 R; a* f

. v( o: ~, [1 ^7 c2 t4 V/ R(svn客户端简单使用 svn update 更新代码 svn commit 提交代码): ?) X6 Z, a  l7 \6 ^# i; v

& O" i3 A& k3 _" |
$ S) a- w, y4 _* O+ r( ]' X! M0 n8 L: `( r' @2 @1 P9 p
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; V7 @1 \9 b+ E* d
7 t5 G6 {5 @# b2 C+ a5 c3 g
这时我们保存在版本库的代码就会被同步到网站根目录
' y% A* ^7 \7 x/ M; [( ^' n2 R7 z( l4 @5 Y* T: n
0 r, N' a- N1 n! v# E( r
/ w! ~- f1 a% c( x
# Q9 j2 ^9 ?5 l5 I
' ^$ G: D, s' ^5 v! a, O; S  M9 n  C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
3 T/ a! \3 }4 X" f7 Q/ G- _1 d4 y  jcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
6 z; Y9 I4 x# ]* c+ {  b1 |2 T, {, G' o, i8 R% X
  1. REPOS="$1"0 ]( }: M" H9 x" K: O8 F
  2. REV="$2"
    " @/ w3 p6 M" ~
  3. TXN_NAME="$3"
    8 J% K! B# ^# P& Y0 ]9 X. G
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". j* M$ k7 C7 P0 n3 Q0 m
  5. MESSAGE="$(svnlook log $REPOS)"
    4 s' L) A( B( G+ m, V
  6. SVN_PATH=/usr/bin/svn
    - \- s# _- r" v0 B7 R5 ?( s( ]0 I) @
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    1 b& _$ T3 L, I& g; z' g2 a
  8. mkdir -p /var/log/svnlog/ I: ^, E6 ?/ i$ l. G9 o/ b
  9. touch /var/log/svnlog/ssyleo_update.log
      d; @( g4 ^+ c/ v
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    & }0 W- c+ t/ L5 a
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH6 {8 S1 k8 `7 d  m; Y3 x7 Y
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 k- z( `3 o9 F. n8 @
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH! e6 L$ [  L% {
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 m9 |  V; K! y' O5 c' u& \9 E# {3 g; d; v0 \6 O% T6 s
  1. #!/bin/sh
    + ]8 F8 u4 E7 y3 q0 z
  2. #设定环境变量,如果没有设定可能会出现update报错) `: `/ L! ~! n. M" Y
  3. export LANG=zh_CN.UTF-8
    ! F& T# L  y3 y+ b" J4 M
  4. REPOS="$1"
    , W7 f) }* i& f
  5. REV="$2"
    , {2 K4 d. ]+ F
  6. SVN_PATH=/usr/bin/svn- X8 O% k) n% d$ [9 [& \8 s0 K
  7. WEB_PATH=/web/project6 ?* F" I; \+ K- z& Z# w$ Q
  8. LOG_PATH=/tmp/svn_update.log
    # @! m9 G2 W4 j) l; [$ y6 y
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache5 Q; J. V, s$ i: c8 D4 l. o
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH2 a# ]2 f, ^& M
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH3 f- i4 t3 T" z1 g) e5 ^* P% z0 u4 Q
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ( O# V4 T/ e1 G& \" w
  13. chown -R www:www $WEB_PATH
复制代码
) A* y, a; @  W7 ^; f; `
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
9 i; B- [" t3 X& W4 `* t( G: Cexport LAND="zh_CN.UTF-8"
; D' L$ h0 ^) H# k% }/ rREPOS="$1"( F" ~3 E7 }0 N
REV="$2"
) W7 \, C% _6 u6 qsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 W+ |. p$ F7 O) |
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
5 ^% b' z# a4 z% @( u
  1. % b% C) _5 h" F6 C* L
  2. #!/bin/sh! u" h% G+ }) B. J3 t9 c
  3. export LAND="zh_CN.UTF-8"
    2 F* d- p9 X& P2 z+ q
  4. REPOS="$1"- d1 s5 Q+ u4 F
  5. REV="$2"
    9 z' r: w8 q# x+ l' a# X+ M: R
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    + m0 M$ o/ @) I
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
) P" M& \5 E8 C" f7 J

6 e5 {6 w  V/ v4 C6 z. W9 ]
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 19:55 , Processed in 0.088822 second(s), 18 queries .

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