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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
! c2 h6 A. n+ e) w& G$ dSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)0 _$ y- @1 L; D3 K
1.准备工作
) v2 T; b6 O  q2 F8 y9 Y一台centos7 服务器 一台 客户端+ `, u, k# y  n. X8 B) K5 u
————————————————
3 {4 Y% i$ ?8 r7 [9 \, Y  ^0 a1、验证是否安装了SVN1 ?, P; }5 ]; b( V5 Z) a' E* u
2 ]0 z! Z' c8 l+ {0 _
命令: # rpm -qa subversion
8 a- r! }7 A$ A8 }2 _
7 q2 f6 ^+ U5 j1 }5 g" ~, D如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
1 I( G0 J8 m! [% F
7 V/ N( {" D, p否则,空白4 J1 a' w" k, w

; H- e2 n( r5 O! v4 M7 T2、安装SVN的命令
, V0 q% c+ m7 s8 p8 z
+ _  k+ r, Y1 r- q  p: L# yum -y install subversion
5 i7 b( U4 P/ K" J' l4 \, U$ o& w( h5 g# Y) j" L
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
# D  g5 w# U# i* }! b创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了" o2 }: R5 [4 w5 l4 n

( Z& H2 x; e7 O% ?- r0 L然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
  F9 l# b7 i4 [- w9 E" L3 V1 R. G2 a3 q$ n
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
3 u% k& I+ H6 y! A( t; l5 q  z1 T4 q& E0 Q' O- B
" X; Z5 m8 G( `- N  q
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' H/ i; Y0 ^% c8 Y
4 `, k5 v3 y$ X; L4 I# password-db = passwd
' d* s6 t/ s2 b- m/ X2 m' J
" |" D: z7 e) n  m, x8 n# authz-db = authz# Z; b6 K7 F- O2 F, ^1 ?- Z' |5 S
) [. o+ J( b5 g# r  l3 O$ `4 c

3 \' }6 c  F$ Q# [6 m, x9 q然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效3 x! Q" f: A. W# @
$ }$ y& Q% l* U' ?2 `9 {
登录名=密码
( v. \4 o  _+ {: r/ c  N4 D4 O: t
/ C- K9 s0 E1 X; euser=123456# o' }+ Q" E6 V+ q, H

9 @; k  `; v6 z2 Q
% z, L4 m$ `1 Z9 `最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)) N1 Y$ V* a7 w: b- n" F
7 D/ M& ?% U+ U7 H4 i2 |
# * = r
8 A6 E/ Y+ [3 p9 \& D# w5 j& Z# u8 _' V" G/ m+ g; E8 `& n
[/]2 f, w) X- d* M
& R8 M4 Z0 }7 f" R" f3 B
root=rw
& D. K: v  Q, a
2 Y& f! T! V' U. U( P; `, Q! E: w这是用户的配置就完成了
8 V: o  K# r' S6 @8 z
) E9 ?* D8 W& o. k" ?8 P接下来我们就需要开启svn svnserve -d -r /home/svn/blog
# [) g6 v5 s2 W0 S( Q7 U  Q9 Xsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo; p3 w6 C2 Y! f) x4 z' g8 k; y$ z$ k

; v0 ~* ]7 @  {  h6 l使用此命令开启svn 根据自己设置的目录自行更改
. D7 p) G! s: Y% ?( \* \+ u. }# j& Z  c9 C% _5 R) V( W8 }% U
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了, R, o5 E, ^  [: ]

' P7 F3 A# h, ]
" ?6 N) Z$ U9 `win下载svn工具
1 `& R9 r8 J. W  _  l9 x3 _) E" E. |% h& a; t/ k
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了3 ~2 C' E& E3 D5 m, p5 O

% f, [/ `/ j4 P# t; f$ O
3 C7 S  n2 s  T& z  u: ^重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
: M8 m7 ]) Z& F2 k' u输入你的svn地址 地址请根据自己的设置自行更改
# I8 u  ^, N' R! B, ?) `: Q: _, i# Y5 R

, h7 O9 \5 W; o1 G) i然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了8 ]% {3 W5 u7 H, `) [

1 l+ [% C7 {# [5 [8 C( x. i' X0 |+ o! E8 @4 _
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)# U' y7 g: i: M: Q' X# P' X
6 d# y; V, N  ]' b3 N$ m% ?7 {
8 N' T- F* {8 P1 J( q6 X/ f; [
6 [5 C+ b) j% M* T0 O* P. j
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存* e0 F) L9 _2 [  R4 Y0 V9 n: c
) e8 D1 O+ }3 m5 |# Y* O2 K
这时我们保存在版本库的代码就会被同步到网站根目录( J( B- C% Q% K: Q6 N/ N3 f1 @

0 }" {8 d) h0 c2 u+ u& o
% Z2 n# ]+ B8 q4 q1 }. F7 e8 N- @- W5 j* Q8 ~6 e% h

: ?; N7 Y. R, ^8 ]
+ w: E3 a8 `" u* R2 y% q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录( H" p: Q) @& Y7 }, |2 |) E8 s
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
( ~1 D% ~) g* {) v/ t
" _# I/ T, x# F' D! i
  1. REPOS="$1"+ F/ q* L8 q+ z) u9 h# }9 Q
  2. REV="$2"
    : n9 o2 `9 x+ v
  3. TXN_NAME="$3"4 ^/ g5 [- w7 S& w3 ~. z' M
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"# N& g- X1 J/ n/ ?# x
  5. MESSAGE="$(svnlook log $REPOS)"
    8 ]# k- `( f/ R" x9 |. d
  6. SVN_PATH=/usr/bin/svn! }( |3 x( o, T2 ^0 V7 U0 p" Z
  7. WEB_PATH=/usr/share/nginx/html/ssyleo" D2 c. z+ b4 W+ R  G' L& T
  8. mkdir -p /var/log/svnlog
    ( }& t, _$ @5 n" v
  9. touch /var/log/svnlog/ssyleo_update.log( T- _5 q4 M7 E' R
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log0 E/ c" G5 C6 W9 }, Y" V" l
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    / M" ]* [2 t- b0 W+ J
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH; G  z5 m. X9 P, n7 ]; x
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    * A3 C; F& U: L2 Y0 ?
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

7 E% E9 j5 j2 h
+ M4 o: c; w7 Y4 Y8 m3 p5 G% [
  1. #!/bin/sh
    : I5 ]4 a0 M0 j% M; p
  2. #设定环境变量,如果没有设定可能会出现update报错
    2 p1 s5 X- ^9 U
  3. export LANG=zh_CN.UTF-8% C( f; p- v/ Q2 G8 X6 |
  4. REPOS="$1". W, X# ?- ]# n+ j+ F* ^
  5. REV="$2"
    3 F6 U2 Z' R3 c& a! A, S
  6. SVN_PATH=/usr/bin/svn# R0 x. r/ O$ I6 H+ [# B* ~
  7. WEB_PATH=/web/project# ~8 C( i  v' f5 y& x
  8. LOG_PATH=/tmp/svn_update.log
    * A. m. j) G. T7 m1 B
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
      L0 M& ~" K& Z, A
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    # g' p! [! {) Q- {
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    " j' F/ q/ _; O+ g9 Y
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% E4 k- H8 v- ^, g
  13. chown -R www:www $WEB_PATH
复制代码

2 n& W0 c6 x% K& f% L- k
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh5 M5 e# @2 y& R# ?
export LAND="zh_CN.UTF-8"
% y% `' j3 {2 V. _9 P# T3 eREPOS="$1"
0 M, H  G" R9 y+ v+ n% ZREV="$2"
. Y; {& B% H! k$ q( r; j. ssvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
( B" Y* A" ?/ A8 J4 O# {svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 Q" w0 _1 l9 U0 q! N

  1. - h7 P' ]: ~3 Q0 k  c, k
  2. #!/bin/sh, o4 F( s% E3 y
  3. export LAND="zh_CN.UTF-8"
    & {+ G  M* l4 p4 [
  4. REPOS="$1"& M8 S& Y2 E! S* i/ d& H1 M
  5. REV="$2"
    " k1 K! K" ]* T% X  a( k+ }
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    % J/ w. g% a( t. |+ b
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

' T3 b) v+ ?( D: d' m& Q
. B* X( G* G/ ^3 A; k. X/ l) L$ {
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-17 19:12 , Processed in 0.108901 second(s), 18 queries .

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