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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
8 G# I0 {+ e# N1 [0 rSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
7 Q7 p+ J+ s3 u1.准备工作8 R$ y9 s0 Q( p# L
一台centos7 服务器 一台 客户端
: D3 \# [5 e* G( D# u" T5 B8 T0 B7 T  @————————————————1 K. T& H( |. ~! a% N4 G' S
1、验证是否安装了SVN
& F  g% q$ J0 \" \* B% ?
7 a- p, l4 a' x6 K2 u% f3 j9 ~0 Z5 ?命令: # rpm -qa subversion
) G6 m: h+ X/ w1 Q3 V( ]2 ^* U+ K
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_648 v  I, Q2 C+ u; ]! ]6 b

; l1 D$ v6 z; b* _9 Q! W1 R否则,空白; Z7 u2 f9 `% W. V4 ]$ j
  \5 [( \0 W( _+ Z4 {
2、安装SVN的命令
1 w$ B! J2 Y4 m1 f4 ~
: d( p9 ?: e3 n8 \7 Z4 S# yum -y install subversion! w* m3 F) L0 `" u4 [
% |/ }6 t" y# ~; Z& C
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录6 E3 W3 H- c0 Q& K+ g; [
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" ^2 e# H0 D' [' p0 i  }
8 f) a% m/ v; {5 d. ~. U- s
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置, t; h! |1 y3 k) s8 u- V& ^; q
( \+ E$ J1 v. U% J* R& z6 v5 t- h( a
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)' L' D9 V# B. c. n! l
" P' Y! l# D% z  D. g4 t5 o' V

1 q5 N/ h% A) |( I9 Y+ m; G* H首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格) |- Q: h4 @% e: Q$ P

  |3 }; h9 E$ r7 |. j# password-db = passwd
0 w) `/ P; n4 W1 @/ y  N0 E
: _, M$ E0 l- z7 {. U! C9 L. {# authz-db = authz
/ {/ x/ n; `+ @* E3 _2 R$ J; j" |; ]) v7 [$ Z% J$ ~

- T9 e0 ?1 [* |6 Z9 C2 _然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
/ S' g) S$ Q' a8 c8 S4 |+ [) _4 S: H4 I
登录名=密码
  Z6 L* \1 Z  o5 m( _+ t
3 G1 }& z$ y: quser=123456
; q! @* j! O0 M  Z' o' a1 c# S" q& Q1 D8 j* W2 j

$ I2 c6 v  U/ _2 ^: g9 D: W$ ]- H最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
) x1 D& J# n, S
2 d) V$ f+ X! e( d3 ~0 }! M/ _# * = r
' E2 {  B% s4 r, E1 n/ A! P1 e8 {, `- {2 Y9 M( i
[/]$ Z3 D/ f/ {! `6 @0 E9 X

' H, a8 K/ ?1 k3 jroot=rw
  H* [+ s& a' a: r/ f9 q3 d- d2 \8 C" o) s
这是用户的配置就完成了
( b* q5 h( r0 H+ \. P0 G
8 M, ]) L( O3 x接下来我们就需要开启svn svnserve -d -r /home/svn/blog
1 y1 K+ ~6 @3 esvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
$ A2 U3 ]/ X8 V
/ Q0 ]# t( y( m' Z9 h0 h* U* R3 Y使用此命令开启svn 根据自己设置的目录自行更改
3 @* H4 B6 w/ m
& ]. R6 l: \+ u2 `/ ?) l3 _* G使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
5 ~' Z# O: q/ ^# l+ [* Y: b. s) S$ j; ~3 C

9 H/ f3 S- g" `. R' Rwin下载svn工具
, j, Y6 e8 G4 \; `, {" E: W
: K3 c$ e/ u2 e) H! l% h7 K8 y( Y接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
  ~" }3 S+ K# w* q) e: a& u& B
1 e' G! e& g( f! c6 n+ c2 u. W
, t6 }8 |! A3 I8 ^; f: ~重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
4 n0 M8 ]* o% `6 G输入你的svn地址 地址请根据自己的设置自行更改4 p, h* o' k# I, @; p

' U/ u! c' ?5 D' Y3 i& u0 P
. j* Z8 \0 S8 ?$ n& N9 z& G# X然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了0 V; g1 T. ~% a8 F- N3 f/ g
# G( N8 C$ v! g1 |' i  P

) j1 n: \5 @7 H) ~3 y(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
0 k/ {7 @1 C& T6 a1 o  N2 x# Q% R
8 Q: J- x0 O) {1 t. U  k3 h8 u3 h: z! b
: C8 C7 S0 b! k5 P' C/ T
0 y  V9 j5 @  b- h: s3 b5 P9 d) Y可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存: o/ k1 h# g( g8 U/ G

5 j& H8 F2 x) s$ m/ |这时我们保存在版本库的代码就会被同步到网站根目录
9 h5 B: s& F1 J3 S) G% X" Z2 ^' r+ c+ U, |( z  k+ M

/ V, k; e, r$ S6 i) }" O( O5 t) G
1 k5 E$ B3 ^! l. n. }9 Z% v4 b% A& ~/ h
" A+ m. U0 x) Q' Y* q$ f% r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
+ x/ F! E; \) Qexport LAND="zh_CN.UTF-8"
9 Y$ l( c& M7 N# G- GREPOS="$1"" A; ~. V6 Y- ^0 a0 y
REV="$2"5 s" u: h/ b& I1 g
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 a; ~* b! |: c9 v- `0 f+ o: ^
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache% X& J4 j' q' Z( `1 k  J# r
  1. 5 A  u9 \; C9 b
  2. #!/bin/sh( J8 ~( ~& |- s: u. B, u0 c
  3. export LAND="zh_CN.UTF-8"
    ( _; l1 b- |3 ^/ E5 v$ `& E! f
  4. REPOS="$1"* ?* {5 N: W8 h7 }
  5. REV="$2"
    6 e5 {9 U2 w& ^
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 _) e5 b( m1 i7 n
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

% Y* ?( o$ y: [$ c$ E9 B* z$ o3 d  C1 I- g( U
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录0 Z3 g3 ]3 E5 t% c" p3 t4 j
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit. q0 L& l3 _+ G: w+ \! n" B
% d; v: P) d! f/ c% h4 V
  1. REPOS="$1"
    & _: ~. f1 C1 t
  2. REV="$2"4 I2 D) Y! P% |4 S0 O
  3. TXN_NAME="$3"
    , N) O/ H, K& D) `- A! @# j2 \) a3 m
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". R8 Q& i$ X: d; w
  5. MESSAGE="$(svnlook log $REPOS)"
    . P! E, d9 B  C0 a5 ^
  6. SVN_PATH=/usr/bin/svn
      _7 \) ^8 T$ n( K
  7. WEB_PATH=/usr/share/nginx/html/ssyleo0 |7 p, r" @' w5 n
  8. mkdir -p /var/log/svnlog
    8 w" a/ ~( k: b- v. Q
  9. touch /var/log/svnlog/ssyleo_update.log
    . }# U, [; K9 [, w
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log5 r+ A$ }2 w, X4 i) i8 X+ r
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ) f6 B* s2 j  A3 m; T% {
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH9 H& R2 M% r) b# _8 y9 B4 T& ?, T0 u
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH/ Q" B6 p" L- O- J/ r
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

/ h; e. g% r1 L& m3 q% }& w5 u  Q1 W- d5 t1 J8 @
  1. #!/bin/sh0 T; ]( P! p' ^9 `/ v7 H) J% B
  2. #设定环境变量,如果没有设定可能会出现update报错
    ( v* q. j, e" ]% @5 D. d& d
  3. export LANG=zh_CN.UTF-8
    , J" z' _( g4 Z- h0 N
  4. REPOS="$1"
    ) |4 c% g! k% d; l; |
  5. REV="$2". a; U' z9 C7 k1 Q
  6. SVN_PATH=/usr/bin/svn
    2 ^2 `0 K: A' Y' E* M
  7. WEB_PATH=/web/project3 Y# H7 F2 A* A' N" t; o
  8. LOG_PATH=/tmp/svn_update.log3 E  n& A9 U3 h
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache* n& A) C. O3 }& Z2 b
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ( q% H, U2 N. ]
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH- V+ h2 {, i! y7 }5 h8 b' ^5 @
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    + x% N4 l; q) C# u
  13. chown -R www:www $WEB_PATH
复制代码

% Z4 ]1 m) [/ Z' |( @9 w
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 10:50 , Processed in 0.052409 second(s), 19 queries .

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