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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
9 B" k% ?8 m. v2 BSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
; |& A+ [! V- w8 j! ^- R1.准备工作
' H: T$ W0 s- o, [9 {/ u一台centos7 服务器 一台 客户端5 k3 y3 e4 t# m0 j# c
————————————————
5 V$ K6 Q2 p0 [. l, L1、验证是否安装了SVN
% Z, f8 ~* n9 ~: K! G  H3 r# N9 |( T7 f. M3 }' @
命令: # rpm -qa subversion* J, E) q5 a& ]
8 G3 }+ W/ u% v
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
: J) D' C- H" F2 {% G# @/ b' W0 C. ^4 b& b5 t7 n5 a* S
否则,空白5 ?9 ]" h( O3 T, ]$ w) \

: h+ g/ J2 F6 ], l2、安装SVN的命令
: _7 l& R$ u+ W: G$ H. ?3 E' f: e1 q0 @( w1 s7 X& A# }
# yum -y install subversion
1 \, o  W9 t6 e2 E/ B4 d1 C- @, ]  S, |9 v
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
/ e+ w9 j. d/ @! J' g9 w8 Z+ O创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了& n' K9 ^5 W% _, e) A( o4 ?

/ g" X1 C7 D& `* Q3 [然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置, T. ^4 l) `2 c& q! `
) H% G# [1 J0 L% h
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
  c" h- c! R! w" [% G/ M# X6 j& W0 X5 l1 w) T8 A

! a) P2 j) U. Q" _' Q首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格: y2 [8 L# U' k( b2 S
5 b6 M# l/ U7 Q7 {* R- i9 Q* n3 ]
# password-db = passwd
& m" R4 W/ W0 j" p: L3 F7 [. x
4 y$ l; y/ f7 d5 ]) c# authz-db = authz* j1 B! q4 E! {8 M* z: B
" I' l; A- j7 W; b$ D3 z
3 w& u' {2 t) m5 x! N- f7 `
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
! A5 `8 Q0 l& z1 m' _1 p0 D
; p! v6 m4 U  L: j3 ~登录名=密码' i; e3 S$ k! R- a2 ?3 D

. h  u; s7 y  I! O9 P) e4 W# B+ [user=123456- a+ H, G' n8 y; l, Q4 I' C6 ~6 }7 F
. M) Z7 L5 @0 p) d7 S& K

! I" o9 ]- {% v$ _; @最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)( g- _+ \1 K4 e5 C
: Z$ Z; @+ i8 a  r5 P
# * = r
; M" g4 D8 F5 z# E* H) l
; \8 E6 `. s' U2 O7 p% X[/]& A1 L! Z0 i" }0 G

* {' W% T8 ^5 G# S1 I5 h" Qroot=rw: A& c+ P' s% n8 v% S4 ^

# w* ^/ ]7 H9 A8 U1 ]这是用户的配置就完成了
4 @3 j* v2 I* u2 S! c/ F& n+ L4 F4 F* M3 p2 [" ~6 Y
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
9 Q5 Q+ m8 x. W- z% {# Hsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
) U" v6 _3 _2 {; N- Z7 H
% ~% K+ V2 s) K- c使用此命令开启svn 根据自己设置的目录自行更改0 o+ e4 g6 V! E1 c1 R

6 L* s+ {4 c  h+ [' F) K7 a使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了. k% ~/ ~5 ]9 v' O

' j- r: e( K% A4 P: v1 K" v/ B3 [3 N! o7 n7 {# H! Q
win下载svn工具
9 n8 G1 K7 K" s6 \% M' k# w. \
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
8 g% e3 y0 r: {- u
. t; e: r. a, R  A1 n- N  F) h" q/ _0 d
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
7 G5 j: y/ J* z9 o- C输入你的svn地址 地址请根据自己的设置自行更改$ f$ H* d" b' X$ @1 t9 \

6 @1 v/ O* H* d& O
5 F: s5 h6 U! V/ L. V$ p然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
7 F, |# T1 T. e& u/ @& i; i5 e4 I7 a% ~* v* z, `: i, h$ K' F8 y' ^# F+ E( `
- w2 v3 L7 h0 F/ }" P7 a
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)6 x. V. W1 m4 m; A
' U2 S9 a; p" ]$ E

2 D' O$ o- Y# Y4 J) u2 r) l: {3 X' d
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存& T3 [* u' \; f: |: }+ B

& ]6 H( d- f) }# G% q  f这时我们保存在版本库的代码就会被同步到网站根目录
0 M% _) Y/ w  M7 _: V& g% Y/ o9 l! b& a6 ~( `& H

6 c1 C$ {7 p% v5 G' V8 ^  N% D9 y2 I. x: N
5 s- Y; v, S# ?( \
7 R9 H1 o7 M; Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
8 m* C; o8 y, P1 Ocp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
0 k. t+ c  Z5 e+ S4 }& p1 ]+ r% {: v! q1 Z/ ~
  1. REPOS="$1"1 ?6 B; R! Y4 L
  2. REV="$2"+ H# e( d4 Y0 A: @# y  E; C0 N
  3. TXN_NAME="$3"
    # j6 ^! C, K) b! k* ?" ~+ H
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    2 ?0 O- e4 h( i' O
  5. MESSAGE="$(svnlook log $REPOS)"
    - [" W+ \+ {: Z$ d, r2 H# ~5 f
  6. SVN_PATH=/usr/bin/svn9 o3 d' c, f3 Q% Y5 q0 l
  7. WEB_PATH=/usr/share/nginx/html/ssyleo  ]# n1 T( @/ B
  8. mkdir -p /var/log/svnlog+ m+ Y& U+ K* G
  9. touch /var/log/svnlog/ssyleo_update.log% u+ ]4 r, p  G3 w$ C5 O
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log. g8 M& l1 O; S% O( K$ M: z' |; m2 k
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    : M0 ?. f7 w  Y+ a8 a! p
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    9 Q9 x* L/ P+ Z+ t& ]: Q
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH3 S, [+ M2 B* D
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
2 \9 w1 z9 S% w5 ~6 K# a

, Y7 f; ^, m4 Z7 `
  1. #!/bin/sh
    8 E9 V4 r/ w# B
  2. #设定环境变量,如果没有设定可能会出现update报错
    , [; }0 \. K1 b
  3. export LANG=zh_CN.UTF-8& @8 B% l. \( n$ I- T4 x4 m
  4. REPOS="$1"( E1 |7 ~  e1 a5 x: E& Y
  5. REV="$2"+ R, C* J: u' X2 J' O
  6. SVN_PATH=/usr/bin/svn" m$ `; `" r1 P
  7. WEB_PATH=/web/project: d, b: H) l* h6 i) D
  8. LOG_PATH=/tmp/svn_update.log# t# B8 R( w0 |6 b* y5 X. W6 V
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache  c% t7 X8 ?% `$ E9 g  Z
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    / U% E5 k+ C( |  I& p3 T
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH( h2 Y0 ?/ j8 A8 i
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    8 r  F, ]9 F8 n6 e
  13. chown -R www:www $WEB_PATH
复制代码
  Q& U* F2 d* a2 ~, h1 P, Y3 _- }: s
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh( F) d4 d# V. h+ a8 [) J- V
export LAND="zh_CN.UTF-8"% x. E4 \" Z" C: U. X: m# P4 E
REPOS="$1"
% h* F1 X2 x- g. DREV="$2"
( n/ g( d  a' _1 d; Lsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 c% I3 F" r; m" s! \% w4 Y. U+ @
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; ^2 _3 J7 A* t" S7 u  b% @: x8 O

  1. ( u& I( g' |6 f2 |7 _' @% I
  2. #!/bin/sh  b: a6 r7 R2 Z9 I
  3. export LAND="zh_CN.UTF-8"$ H1 g: ?/ s1 k1 l$ C# F
  4. REPOS="$1"
    2 i' z  {( z) b8 W( N
  5. REV="$2"* O1 b/ X% M: \; X7 q# {/ f) s
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
      M6 V& t4 ?0 G1 h3 W6 u
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

7 D( w6 N/ B9 V0 f6 k( }) g: T+ Y
/ g) K& w1 C1 e. P* C7 ?
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-17 18:11 , Processed in 0.078313 second(s), 21 queries .

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