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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介5 x) ^- u9 W3 P* Q1 ?3 ^
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
6 E5 m2 |) A) T  U$ z* b1.准备工作
$ B# [# j" n$ N) @- b一台centos7 服务器 一台 客户端
% a( @8 ^( f3 W" @( q7 W% T————————————————
% n5 W  r# d; P+ E. x. @* o# v1、验证是否安装了SVN6 w" j+ g" z8 Y. [+ m$ J, s
! m! m6 U0 r& K" a7 T7 N- u: \$ O
命令: # rpm -qa subversion
# j* ]- T) `; P' X5 o0 x' o* g( B# A* }: c% a* f
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_642 O+ k: q; e% X
  D& k: A1 ^+ ~# j0 e. @
否则,空白0 w1 p% c$ n6 F, Q( ~& }- H
2 Y) c- O4 p' ~0 y: B7 S
2、安装SVN的命令- Q" B7 ]7 G* @% o, X. c

# m0 ]2 m/ J& Y7 X5 C$ V# yum -y install subversion/ u" W$ l: S! t* \

1 z. X& _, ~2 ^( ]1 j; w; U接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
2 S$ v1 f6 K( _  I  N8 s6 [创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
! b' \) x' u: ]; [: @8 `
7 H1 P) a1 s! J% p  {- ^2 v" K& X然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
/ B+ d0 [# S  l8 s
& D4 _3 _! Y! O& g# L* S' v/ Ssvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
5 c' E% ^1 g7 [! @7 l2 ~+ \& w+ b( Z& H

  B& Y, a$ {0 H8 I  v6 C, C6 `首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' f& _% f/ R4 s  A7 s, F8 m. b0 y" u, ]% y* `
# password-db = passwd
* A9 w. S8 h8 O. C
3 ]1 a0 n, p; H4 u, K# ~# c# authz-db = authz' S# H; E, u/ ^$ `- H. w. \% M! M

1 r; H# m6 b# u9 P# Z# }2 F* B
+ z! s4 Q3 }( L0 X5 O然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
, I" L" n! Q: ^$ f/ G1 w8 D$ w4 i( o% g
登录名=密码
+ F0 O4 M& a- h# S  B
6 b& N' a* W2 P' Z) cuser=123456* t' ^' o1 Z3 B% l0 m; }

% v3 p+ s  U' [4 I/ E* e
) x, q) H( g; Z* g1 [& s最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
0 A! a$ g9 P( `$ G5 w+ d3 b" N& @- t& b! C& c+ A
# * = r- ?) D4 U; V& s, d

0 z- N  b8 d5 U, P3 N( B4 X[/]
$ Q$ N( L  P: v/ i- C2 f( w* k; g4 S/ f0 H0 h
root=rw
$ Q; e/ [5 \4 b  ]9 E
% a8 u( W2 L+ c% O这是用户的配置就完成了: D; s; J& J7 U2 i9 O0 M0 C

" E6 u0 Q% z$ V接下来我们就需要开启svn svnserve -d -r /home/svn/blog
8 a9 o/ N$ T/ E* {: c$ e, i; r8 I4 jsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
' ?( Y$ y" V) c0 S3 t/ N$ I
5 A6 r3 a0 x1 r1 G0 t2 t3 c. |使用此命令开启svn 根据自己设置的目录自行更改( F+ U7 F! [/ t; Z, W5 q8 ]8 l8 y

8 {' B1 U- ]/ p0 a3 q' P, F" ]使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' ^/ B1 V1 f+ A1 A

) M- C6 J2 l+ w2 M3 ~
: Y8 W. i1 V9 H  z# ?' ^0 fwin下载svn工具9 |  Y  {7 b( E% K9 u4 K4 E8 Q
' R, t  }9 i8 d! I, T8 g" B! H8 N
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了; U+ }: K$ s: j: u  Y( w
: [6 S: V; ]- p, c# s: u9 \# P
- a0 {# ~  }7 T6 z) n* o8 J
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码, s3 B1 t5 q6 U: w6 c; l
输入你的svn地址 地址请根据自己的设置自行更改
/ C3 x' Y* F9 z7 v3 Y: {; h. {' I: B& ]- Q2 X# {, Y

8 B. b* x( N  ^! t2 w然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
' H( A5 @: W: f  K
, `6 Z+ x; d$ X5 Y1 N% E2 S
7 B; R/ j& w4 w* x* a(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
3 @6 v8 I: N( [0 q. G/ x# R2 q, B7 p. G5 k7 i+ J$ }( r. O$ C

6 ]$ P2 T. q7 j1 R8 S
! |! f% _8 V6 s6 c, N可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存& a5 {) K1 l9 `8 i

# w2 b, b& R$ X6 ?0 d. [6 t3 h这时我们保存在版本库的代码就会被同步到网站根目录
( V6 a2 p; `3 x( D5 a6 r8 n% o) i- w" T  r8 ]. n2 c* m

) x+ m5 w, Y$ L) ]! ?$ m
% T$ b! @) x, L
$ x1 _1 H$ S, V# c7 [2 F
5 A$ j1 s% p2 r, E8 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh" B- u% \. c, i5 j2 Q# y
export LAND="zh_CN.UTF-8"
$ b' J9 v! {# w# s) mREPOS="$1". y) [8 |: v4 y  |% T; p
REV="$2"
5 {& x3 t4 S' }' Q# k: q- d( d% nsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
2 h( F) d$ e" l# K8 v4 H5 l  asvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 \$ i. u0 w6 C9 @: k" U
  1. ) s( ?4 ?' o5 {2 z# b
  2. #!/bin/sh
    ; Y1 l8 A! v* S1 {: v# c1 n
  3. export LAND="zh_CN.UTF-8"7 a5 J! w- x% q7 ?8 _4 u
  4. REPOS="$1"
    ' b2 V% X) b4 ]* p
  5. REV="$2"2 ^/ D) }7 H; B/ A8 Y
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" o0 p/ F, p& }9 ]' M( r# V
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
* H2 l7 P; c& \- ^: S
4 _" U4 o2 N- M5 c$ D0 x- \, g
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录4 b5 ~2 m- Z0 T0 v" `+ H
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
2 m; s7 g8 Z$ O! F
! D. y/ V1 i4 ~* {
  1. REPOS="$1"
    3 E8 ^+ V% E. A6 f! W* G( I
  2. REV="$2"" o$ }- H. q7 H
  3. TXN_NAME="$3"
    - N6 p* F( ^* i9 t( e
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"6 J. C% X, `0 b1 r7 M. w
  5. MESSAGE="$(svnlook log $REPOS)"5 D9 ?# g, _: _1 G2 \
  6. SVN_PATH=/usr/bin/svn' e, H7 }2 f1 `& ^5 g
  7. WEB_PATH=/usr/share/nginx/html/ssyleo9 J/ F. i: }2 y3 y
  8. mkdir -p /var/log/svnlog
    $ t2 U# Y9 N; r
  9. touch /var/log/svnlog/ssyleo_update.log2 o+ B' J& Z8 ?6 I8 F! F3 ~6 m
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log- s, O  J/ H# D4 P( ?  q8 h
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH; h0 E# }) \. a6 c3 f+ h
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    2 M$ h- [# O, [" l: M- M
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH3 y. K' O$ v& j- V
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

! d9 b+ ]3 l/ R
3 j3 M1 k7 C6 @& o6 q$ j( w* _
  1. #!/bin/sh
    4 R" a- @# }4 U9 \8 X
  2. #设定环境变量,如果没有设定可能会出现update报错. S5 n; ?4 }& Y$ ~6 f- ~
  3. export LANG=zh_CN.UTF-8
    ; N4 |8 j- Y- D9 l: B
  4. REPOS="$1"
    - p8 r% f4 t: K
  5. REV="$2"+ X/ G) @3 E) k/ W( V3 x+ }
  6. SVN_PATH=/usr/bin/svn5 H% ?/ `& x3 T1 {! L
  7. WEB_PATH=/web/project
    $ ^9 k" v. f5 n' ?$ o9 h8 D
  8. LOG_PATH=/tmp/svn_update.log
    / k! C5 {" w% w; n+ s8 \& Q
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache6 u0 G4 z; V; Y1 L0 P' O+ z% L+ T% J
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ( ?4 B" ^4 u; W9 M8 N0 C0 ^
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH3 Y3 v, k3 A4 r& b: C/ _# y( a0 @
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ; G2 M# W2 S6 w1 S9 N% J- I' q/ Q7 [
  13. chown -R www:www $WEB_PATH
复制代码
: B, }$ E# l% e
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 19:56 , Processed in 0.059714 second(s), 19 queries .

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