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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介7 d. Q! X; `# _  r' ~1 D
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)* N4 n  \+ l' P- J6 k& C7 @
1.准备工作+ Q  M, k( o# i+ s4 {
一台centos7 服务器 一台 客户端7 o4 m: ^! L# `5 ?% ]7 K
————————————————/ L- ]& }; V  [) d" G5 g$ N' |( ?
1、验证是否安装了SVN
* W, m# h1 d8 G) p2 d/ a. H
' J- b7 D4 X6 q& `1 |' K命令: # rpm -qa subversion
+ c7 I5 b: D1 U7 ^! a; j5 x! }! `: ]7 o
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64+ F( `% o; w- o+ C: B% Q

9 ~$ B  X5 `( X$ {/ W- {1 i7 A否则,空白$ J! Z" H0 Y, r4 Y! I  ^
2 ?7 I  `2 x& w
2、安装SVN的命令# F! ], L4 P( T! ]

) G% ?6 e7 t' k- Q* X# yum -y install subversion, Y' x& E4 e) r
( t" B2 f. f8 l# U; K  P
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
8 n, x3 a" M9 j创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ _& F  S5 i% s) Z  `

* Z, R4 ?, s3 a/ {5 R5 ^, u) P4 k) C然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
& Q- N2 P8 ?& |0 j  ^4 v
$ k5 s) W! F, e) \! Lsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)) n8 g8 b. R: f  t9 N

6 i/ T# J) }" S5 V7 v  Y. h
: n" l4 _6 d+ [首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
% P( L" Y, V7 y! U- I5 H' u5 f9 v$ ~/ V5 K
# password-db = passwd6 {7 ]6 C' V/ F1 n! f' v
6 b3 A9 L2 o8 _# D' u; u+ r9 D
# authz-db = authz, X+ v% G) {2 a
! `) B% C% c+ \5 ]8 ~3 H6 Q

, ^+ z, C" ]$ O然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
' D0 x0 I" z: k% n& m" t' b. S: A% f9 Z2 ]' F
登录名=密码
% h# H# E, Y0 k! s3 r% i. y' ~8 I$ m9 G0 p
user=123456
) C5 _: w, x1 t$ T/ n, C% F
9 ?4 [* f2 o8 O9 r: r* U
# z& k: K7 d7 S% _0 Z7 r" k最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
6 k! k4 o% e8 x
3 }- |; T4 U( b' V/ w+ p% I# * = r( Q# b- J# m2 d! F8 N1 Y
1 E4 a/ Q' ?4 f. G! B9 u
[/]
2 x" c/ A( S; W
% J: D9 X) x9 zroot=rw: r9 p& l) e  k  \

" k! @' r! E/ M% d$ ?5 I这是用户的配置就完成了4 Y. Z3 N: h4 l, Q' a! a: ~
& _% ]' E: p# I- c6 v: X/ Q7 [
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 5 y4 d0 G' E* G" P% [
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo) ]. B* Z# A, y& e4 ^

7 e' @$ R, ^% R0 N8 f使用此命令开启svn 根据自己设置的目录自行更改
! t0 i( G6 F% E% }+ {) x. N9 x# R0 D7 u' d
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
) B1 l) A" U) S- F  W1 [6 `/ t, M, N7 z- Q8 c) G4 j5 r7 R

  ~7 u, k3 v$ x7 B* x2 T6 Ewin下载svn工具
6 a# g: t: Z8 Z$ P2 N! Y( M8 M
1 r  h( n! ~# |: S接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
' A! A3 z! e6 P  o9 J# m. z8 M+ K
5 f6 E: w+ _4 M) E: t( k& ^" \5 Q6 O% w7 a
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
, y' g) y8 ]& D9 }$ d1 L8 Z: G2 o5 A) @+ t% |输入你的svn地址 地址请根据自己的设置自行更改/ I. ^+ c( H9 `5 p8 M2 z4 J
1 i7 y) k: l* a3 F( I
1 t8 ^+ r9 a; `7 U" p& T  J8 U8 q
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了7 c) {" G( h: i' E) N' w$ O

, D4 K9 I& i  Y, ]- @3 j% P# s9 T, J  p! q7 E' {
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
) H" [2 p3 _! R- y* B* f
& l7 I, Y; g4 g- b/ j
0 s5 I8 D% q% o4 `. c& ~: C+ O8 g* s4 P! c. Y6 I% r) ^7 ^. o
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" y$ o" y. c) F
: |! r$ S; e  U+ D4 ]0 F+ j, z这时我们保存在版本库的代码就会被同步到网站根目录" ?( I; L5 z* q7 o+ S, ^7 ^
9 f& A' N1 n2 Y8 t& j8 B$ S

" l0 M4 l# c1 f/ D, K9 C% a. r' [

1 K5 p6 b- _9 w: j0 @$ D3 H+ s: U9 i3 x) |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录- x( v2 R0 q) f9 K) c6 t- X1 L
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
2 U6 \( g- b& T. f5 W5 E6 W
* M, X4 H( a3 A3 B( ~6 R1 v/ X' ^  s
  1. REPOS="$1"& @% W* W! h3 d" w! t
  2. REV="$2"9 b8 w* v: G$ n  d/ ]' o
  3. TXN_NAME="$3"5 {! ]# N" V3 C: s- x4 p& t
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"- g, L# m* X4 S) N2 Q* @
  5. MESSAGE="$(svnlook log $REPOS)"6 A. b5 ?6 |, {9 ~; j- M7 u
  6. SVN_PATH=/usr/bin/svn' Z* o0 l' f) [" p3 y, M& L
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    , e+ e5 o8 @" _& l  j
  8. mkdir -p /var/log/svnlog/ o5 ^& M, O- g+ D  u6 R* [7 ?
  9. touch /var/log/svnlog/ssyleo_update.log
    7 v$ X# J) R& d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log2 z/ }! _9 M; E% ^
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! j) ]/ c0 p' p/ P
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH: \% J- r( Q! @  J% p' m3 I. t) F
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    3 J) F1 _, S1 v
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ t: D& I% H6 u5 [- z
% @: e& w- M! V: n( G9 o/ R
  1. #!/bin/sh9 r1 H" \: n2 ?# b1 E
  2. #设定环境变量,如果没有设定可能会出现update报错4 k2 h5 p" d/ v3 `/ U7 ~1 O" T
  3. export LANG=zh_CN.UTF-8: i) ^$ q) v5 X: ^: ]. b' W
  4. REPOS="$1"
    & t: _3 |( g# y; `1 K
  5. REV="$2"
    $ @- Y, b6 E9 W- w
  6. SVN_PATH=/usr/bin/svn
    / Y2 J  N" Z& `) f, x; A0 l
  7. WEB_PATH=/web/project
    , w; G; H# d* W- _  s' A6 N
  8. LOG_PATH=/tmp/svn_update.log
    ( Y  U% C$ g( ~5 i
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    + d1 l( Z. p3 g
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH4 u* ^! s1 |: C( S: B; e4 p
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH0 H0 @: Y, a7 g
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    " \8 @* l0 i8 ]% E8 f
  13. chown -R www:www $WEB_PATH
复制代码

4 m; a( D& d8 X& b6 X
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh/ O& B7 R$ ]1 a+ T: U4 E! ]
export LAND="zh_CN.UTF-8"
1 M, r# H: g5 BREPOS="$1"
. `0 z# g! T+ q, @REV="$2", f7 Z% G! L- A, U  ~
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
2 j+ J! O1 j5 F7 M6 X& v; l. [/ ^svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* A( G# X- ^. f% @& ~$ s: U

  1. 8 F# _% M. M, b8 V" w% @) Z
  2. #!/bin/sh
    9 m; ^0 w$ `; K/ e0 N' y& [
  3. export LAND="zh_CN.UTF-8"% K* ^5 c; b/ B7 a
  4. REPOS="$1"1 }- _9 r9 V3 v7 Z6 x
  5. REV="$2"" d; M  S" n3 i( M
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ' t) _) ?$ ~. H' P5 P* \; }
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

! @# e3 K( P- }: u+ _: k9 a. d3 P9 ]3 z
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-19 21:10 , Processed in 0.078539 second(s), 20 queries .

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