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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介( O6 ^7 t/ Z5 ~  S. y
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)& ]! o( w5 B5 I& ]9 H
1.准备工作3 j/ w: V& T! p0 K4 E) `
一台centos7 服务器 一台 客户端
4 B4 u8 d' h! K) k* J————————————————
7 x+ |8 `  V3 B- K1、验证是否安装了SVN
/ g( w1 Q. R2 s8 k3 g6 d" F
/ _6 e8 H9 a, f, c9 R命令: # rpm -qa subversion
+ [. W; s0 D5 L; U
  O: t8 a( ?, l0 d如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64) @# o# ]4 n: T5 C2 q

2 ]8 w2 U9 ]9 m3 Z9 a否则,空白  Z$ I. H) G" T& N4 \! Q* T+ j

' q( g, B  w$ ]/ M2、安装SVN的命令
4 j% F* K# Z8 ^, O. W, \# L1 Q; ]5 S: U3 U( a" p3 k0 k
# yum -y install subversion
/ k, _# c7 K' J" S- g4 C0 U: R' R, H# L2 l& h- j% K7 W
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录0 r1 z: e  C# T
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了1 |0 X* _2 Z# B& c. q" @( W8 u
4 \; t7 v/ S8 B1 {4 ?8 R2 E# Z% Q
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ e+ Y1 s- d$ O$ z9 E! l: b# m. F2 s0 i( c% O/ b0 A( p
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思). F/ M6 S2 `% M; K$ j  v

9 H1 l/ |4 M( Q
6 A5 B5 y) }3 ]' d5 a首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格) m: b) _9 Y. [4 S/ F
8 O) G. J/ U; d" C
# password-db = passwd
' e# r  }8 k9 \" z: N- H% n# a9 ~, H/ O2 B  e, A
# authz-db = authz
+ |& e" ?5 J& y- Q; O9 o. c, I6 Y4 N! l% p, [; M4 N
4 f' e& o  _5 a
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效8 D# F$ [+ `, x; |  I6 n8 \& q+ G
' @5 }; I4 p% e. Q5 J
登录名=密码
4 s3 w/ n7 U, m. [9 x; Z
% I6 c) h6 Q7 r# Y% z8 B! wuser=1234561 l) f8 y* b" H+ u& `) {8 A

1 z6 F' L9 T* c% p" ~' D# ?
* q0 F7 ?: Q& a  I6 A最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)( e$ X* D3 I5 d1 P, A
' I5 I; b: m% l$ [" E1 B$ f" n0 W
# * = r
/ }' L. N* J+ C$ k4 h6 y, U, p( u# |' H4 u* B, K
[/]$ H, F) e% h$ m( W0 I$ e

; v1 t8 A" @- Jroot=rw
3 F7 X6 I, h7 ]/ j/ j, E1 [- ^0 J  g/ y$ |7 l% b, }. z
这是用户的配置就完成了
- e5 _6 j. V% c& e- W' F! s& v
) u; \- o' o! \) f8 d接下来我们就需要开启svn svnserve -d -r /home/svn/blog 3 e6 C$ F6 y5 u, @) [
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
  z! y: \1 C5 R% i* o9 r+ T" c( ?$ `: d! Y9 T9 J+ v& T* H
使用此命令开启svn 根据自己设置的目录自行更改
# E- y& R7 g, v
) M, a9 D" o5 f* i& _) i* z! j, L0 U使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了! c# w8 K. ]* U
, Z9 `) k: @7 P+ {- [$ P# m3 l: U% O" R0 y
& B6 U, l6 B: H* v" K
win下载svn工具0 X% Z' S4 Q" y( g9 K/ i

( x8 l1 }! Q- c2 l/ Z$ T接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了; d0 ^( v; R/ [$ I
8 t7 k6 D& o* }/ C  L
( f( ~) {9 U" T) P# b
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
# q( U0 N1 `9 {. t. m6 _) j输入你的svn地址 地址请根据自己的设置自行更改
6 s) N3 d1 _$ J* _  a& E. P  d7 }) T5 J" f' `! U+ V1 Y

8 W; O& k! J6 o8 H然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
, B9 C" \0 A$ x3 X' B) T$ C* ^' b) _1 ]9 e

( q5 v, U5 l: q& `& g8 f(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)' ?9 Q6 W4 u, D

; z$ E5 M8 I5 J6 O/ `- O- Q2 g9 y) Q% m4 m

; ^9 c) {% @. l9 S* V2 Y  M5 ^可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存- g. _2 |5 E$ n0 X, h8 w5 e

4 \. K2 P/ Z7 i- t这时我们保存在版本库的代码就会被同步到网站根目录( [  q% Y& b+ K0 x% X
5 S' ?5 P" \4 {+ s9 N

# W+ J& f6 Y( d  l+ |
1 E# x- t) Y* d$ F; u* f5 T7 t0 [
2 _, `2 e% ?1 }, D: F
% H! U8 _/ p3 K: \/ p7 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
6 e- m7 n+ t6 w4 Y* A  ocp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit  t& q& f; J+ h4 l) D) b# a
$ O  V5 f9 M9 E- r6 q" z
  1. REPOS="$1"
    % z/ x) ]$ K# M8 B/ T: H0 o
  2. REV="$2". e  k8 z$ g" }! f  h
  3. TXN_NAME="$3"
    6 p. W8 G- ~( \' `
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    * a8 x: E9 ~# R( s- ?( w- [
  5. MESSAGE="$(svnlook log $REPOS)"3 u# T, k" h2 X. T
  6. SVN_PATH=/usr/bin/svn
    8 Y8 p3 C9 s9 p; {$ L
  7. WEB_PATH=/usr/share/nginx/html/ssyleo2 y% U7 ~- J" v  M: r  `) b( G
  8. mkdir -p /var/log/svnlog7 V  E: u3 i- G. J
  9. touch /var/log/svnlog/ssyleo_update.log
    . e; K, t0 |; P" D+ @, L
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log% g( m2 B, M: U7 K' w1 {% ^
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH2 q' F  N  G1 a# H! K  d, W
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 M6 C& v6 |+ C& I1 t0 |) ^. ?
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    2 `; \1 v, j/ f. T
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
6 n  h, }$ r/ V, U$ i( q

/ p' J$ f: z: O' o3 M! w7 h6 ]
  1. #!/bin/sh
    , t( I; |1 h' n' X6 I
  2. #设定环境变量,如果没有设定可能会出现update报错
    # Y* d. h6 Q( }0 V6 E
  3. export LANG=zh_CN.UTF-8
    3 s+ K% E7 m" y/ E* d
  4. REPOS="$1"+ ]& i3 H/ k, T9 ?) Y+ z
  5. REV="$2"' T" \4 Y3 a! Q9 `0 j: c
  6. SVN_PATH=/usr/bin/svn
    $ x1 Y$ I! _/ I1 v1 E# O8 M7 t
  7. WEB_PATH=/web/project
    + {: h7 |) l7 b3 J! F
  8. LOG_PATH=/tmp/svn_update.log
    0 d0 a$ T! S' B& }( Q2 @
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    # E$ @- t5 G) i+ O9 X
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ! f6 \; n# y4 W7 V; Y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    " n0 i& p" H9 X3 G3 a2 E" T
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * ]6 t4 l3 x3 b2 {
  13. chown -R www:www $WEB_PATH
复制代码

' h0 H5 F: r+ }5 D& [
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh6 g' T4 v9 f/ y2 w& K( |$ c
export LAND="zh_CN.UTF-8"2 O5 m0 M: M6 R1 e2 t. v
REPOS="$1"
4 i# F% J5 ~2 |+ ]0 n! p8 c" eREV="$2"
: M9 h/ P$ o( Y1 Dsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
& f4 y. t1 q$ {% Z$ e& j! X' csvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" Z) ~: P% D* a/ X7 q. S

  1. ! `7 _! k) M4 O0 r& q$ M
  2. #!/bin/sh8 [) ]& S  L7 G
  3. export LAND="zh_CN.UTF-8"' q$ o7 U) A  I5 u# F% p
  4. REPOS="$1"
    2 t5 B! T7 {& V. |5 }
  5. REV="$2"* F4 O" x+ v; r) J$ R1 ~) K
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    / v7 o6 B$ J  L3 g1 o& {
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
% j' [% J8 o( s& a# X1 J: p$ d
+ }' D3 k- l' P7 `
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 16:08 , Processed in 0.054542 second(s), 18 queries .

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