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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
$ @  l3 [: \5 T: z5 w9 J9 FSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)  v& f% ~3 {0 q6 T7 C$ E6 X
1.准备工作* \% h+ a6 l+ i0 X0 K! f
一台centos7 服务器 一台 客户端- h% |! D) v. m
————————————————
9 z# r) i- S, U2 o# H1、验证是否安装了SVN
% T9 D2 f. r* x- G+ l* d- z
( p! K, h( d8 X5 Y- H: m命令: # rpm -qa subversion
; o: X! C* T% o6 b5 }; e  J3 T9 T0 b# L7 O+ a+ M$ V& g, b9 d
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64& T# R: s, X) e9 V- q& x( |

8 l* {/ M" n4 ^! y% H" n6 p, z否则,空白) f1 k4 F) G  ]$ ~3 R

: f/ _0 K$ R% @: r6 {$ Y! H2、安装SVN的命令
  X  |) B% J3 o* I! L, A/ M
% x+ [: O) ], N% m& H# yum -y install subversion
+ N+ M1 x0 C2 m- ~/ T* q; \$ U+ L* X5 s+ ]' r7 K
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
# [1 Z! o7 [# p" g  w创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
' j4 C! B: L& ]2 D! K0 n$ t! T: n# P2 o( o
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
5 Q  \  @" _7 P' {8 X* T) q
7 @- W8 Q  Q0 I# i# l( I2 wsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思), i" ^  |9 t& ^% a

4 ]5 Y" a. o& D
( e* s; S2 T+ {0 d0 k( G首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格5 M6 w7 s  d8 b% h: v  O

; M/ h4 m0 c9 B2 b# password-db = passwd
2 C4 M6 ~7 A5 P, ?, g% Q+ U; P  T% s5 ?5 F3 _8 _  |. H$ j
# authz-db = authz3 S& S3 ]" e: ]( Z/ l

; i9 a9 f+ ?8 A! e/ X: H% h6 i) Y$ Z3 H1 E9 f& ?
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
; ]  |2 H! ]& j0 U% m" D  M3 g) m  y) t
登录名=密码; P/ m9 @' `2 a$ Q% N5 u, {
  ?( J5 r- S9 Y8 P: j
user=123456
0 e7 M$ l* W7 d$ d
9 P8 d8 \7 Z+ X0 ~' D
8 @- U+ s+ c" T& V最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
2 A  l! u" U: d. W# Q# Y( W. [0 C% W1 @; U5 J
# * = r5 j: l( M9 F, P4 J+ K6 r/ [9 Z
, o( \# P  g; V% a; l  V
[/]8 F0 h9 ]' C0 ^- @
' Q( y: z: [" o+ q% c
root=rw
5 |# O/ t9 |$ f; R' |. r- b# E6 N' G# f; u
这是用户的配置就完成了) D' B0 \# H. J. b: ?! q7 O4 k

/ Q8 i. i, K* M接下来我们就需要开启svn svnserve -d -r /home/svn/blog ) F( C9 @6 M6 V# o, W  P7 ^
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
# b5 _2 Q% g3 v7 ]& y% T; A& X( e6 o1 a( k9 R
使用此命令开启svn 根据自己设置的目录自行更改
: u# }6 h4 V4 @( o7 G% u
/ A& Z; V0 H( t* _$ n5 o" k) K使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
) j- t& \- G. t# C6 X" N6 s, s" H9 \  {/ i! \4 f' G- {; G
( s. N( E, d9 Z
win下载svn工具3 `: m2 ]+ I6 O0 I
& S* m0 ]* |0 Z
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了5 N6 a( x* z0 i7 q  h7 G

* D2 U7 l: @& x2 O; _; i& L" n8 B6 H, R! L3 y3 r
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
4 e+ e+ }8 X- C0 D/ L. p+ l输入你的svn地址 地址请根据自己的设置自行更改
  V" L1 b+ p0 ^% `  P- U8 ~2 W; e' I
( Z& O# `+ W8 b0 \* U1 ?  n
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
* k) \2 A3 N) N" k1 H- R) y
1 i; c1 w3 X! w$ `1 M1 T+ J/ p6 H# |5 a% d- D7 \6 l
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)9 M9 p% B0 r  T3 Q+ _5 n
! m; j' P! J1 r' y1 t, X" Y+ _' A

0 o- s3 T) k0 v* {6 A  u) a& I
9 P' o: J, \" b$ [8 Z4 y可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存' ^, p# y* a" @% T0 k8 D' x
/ i/ Z5 F  R1 e9 x) f# V# W8 o! B* n1 D
这时我们保存在版本库的代码就会被同步到网站根目录" O% a! v3 `; |; D* a& g/ G4 o

4 ?7 ^# B+ M2 q
8 ?9 D. _4 Y/ w+ ?1 r& |" v3 A
5 c6 T/ b* S0 X
, [! J0 f$ e5 k1 ~3 U5 Z  B: u
0 }4 r) x: L5 Y6 @5 O0 b7 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
: Z: J* e5 q) H5 {  ucp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 F) I7 Z5 H0 J7 v6 K. h. M; |+ D9 ?5 ?' T( ]
  1. REPOS="$1"' F6 a  t$ D9 Q: \+ F1 N( J& A8 n
  2. REV="$2"5 f% u" q$ l' S& P
  3. TXN_NAME="$3"
    2 R  E! a) ~5 a/ m2 r
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"/ F! X  p9 M9 [6 W; F
  5. MESSAGE="$(svnlook log $REPOS)"
    8 X8 W" ~8 A7 {; J- z
  6. SVN_PATH=/usr/bin/svn1 u) H3 e2 d7 K4 S3 U2 r% {' H
  7. WEB_PATH=/usr/share/nginx/html/ssyleo  q( |1 h, `! j/ Q/ M7 q& r+ Y. ^
  8. mkdir -p /var/log/svnlog) N6 Q: ~6 _+ l  w6 c* ^6 l
  9. touch /var/log/svnlog/ssyleo_update.log
    / p6 Q8 ~7 y* m& L
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    $ r5 ^% M% o% |8 i
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH% D7 m% S, R: f
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH8 W, [* I* h# D; s- P
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH" E$ T9 s' w  q) G6 X+ R5 z% ?
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

9 m% T2 S  u3 H9 o; s' d
: z3 w- N- u( Y
  1. #!/bin/sh# E* x# r5 g* a. B
  2. #设定环境变量,如果没有设定可能会出现update报错
    2 G1 ~" k% S; g# ~% h0 N8 {
  3. export LANG=zh_CN.UTF-8
    ! |* T+ M% C6 l
  4. REPOS="$1"
    0 D5 e" S% ~# J" X# P
  5. REV="$2"
    # y: A, z/ C# A6 Z
  6. SVN_PATH=/usr/bin/svn
    6 f: T6 J& S( v0 W$ u; k
  7. WEB_PATH=/web/project: z3 b$ [" A# ^, v2 h8 \( }
  8. LOG_PATH=/tmp/svn_update.log' z# t: _% a3 c- \
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ! j( W3 }( J# ?5 F$ W
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ! Q7 w( N) N# x0 w& {2 t( Y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    2 ~; a; G( d, T& J
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    4 R+ e+ Y7 N3 Y  A' B7 M; F
  13. chown -R www:www $WEB_PATH
复制代码

6 Z, d9 a3 P6 O" n; L+ j: L
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh, K# X1 m9 R% B7 z* j
export LAND="zh_CN.UTF-8"% o2 ^& |; W9 x, p' l7 B  X' h
REPOS="$1"
* Q4 S( K% [7 }/ ~. u9 D2 EREV="$2"2 F. l7 |0 A; k4 F: Q0 [
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( x( A4 B9 ]+ T7 [5 V, \2 w" {# b
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 z% _$ B/ {0 W( |: |

  1. 2 r9 r4 U! f/ F- x" q; @
  2. #!/bin/sh6 ~; n# I- J5 d
  3. export LAND="zh_CN.UTF-8"' O4 x; C9 j$ z0 T) F" S
  4. REPOS="$1"3 s3 B. {# u; `1 d! O8 N6 I  n( y
  5. REV="$2"
    0 W; P. s* D& Z
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    2 F' ~3 Y6 G9 n% T0 |: ?: r! B/ @3 b) p- ^
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ m+ m6 A; J1 Q2 ^. P
( u7 m9 x2 R9 S. l( x1 _
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-26 11:32 , Processed in 0.142704 second(s), 18 queries .

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