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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介
2 p9 z" h$ p# _; H! dSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)" x7 c* c* x# G, u" V- ]6 c2 J6 j
1.准备工作
- |# e5 V$ I. ]6 ^3 o+ W) ~一台centos7 服务器 一台 客户端6 q- \' n8 E6 q) g
————————————————
) n9 L: K9 O% f: W9 g$ K1、验证是否安装了SVN3 e4 Z6 r) H4 [7 x8 R  {
1 j" W% p+ C0 _2 c
命令: # rpm -qa subversion; l: x- j+ Y% e  m! B

$ [$ a( ^( u  R! ^& i* n如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_643 K: W% {) t* J/ x' J/ |
- M4 H8 g% l2 L- z7 O
否则,空白
; P/ ~, F5 F% f1 s# w* ~4 A
% }+ H4 M' G& _1 V2、安装SVN的命令7 j+ \& |! k' {4 a
$ |% V6 ~" ^, S& T2 U
# yum -y install subversion3 f7 Q: I1 Y: K- N8 i

4 a/ w# l' ^3 \, D7 \3 S4 u5 Y. c: Y* j接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
1 I( o0 C( _. i/ u# U创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了$ S$ }- k, ?; r. ]: X7 b: o, P
8 ]& H& k5 A* X
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
( g: [+ r$ _2 d4 |/ c1 V
3 L+ R# ]) D: Lsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
2 X6 D7 c1 ]" W
& c( M' o) Q/ o: x( a2 r1 e5 g$ E" {7 ~" }8 T" V- o
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格* m: {  I* A' X
9 V! K+ p* N+ p5 T  B
# password-db = passwd
* B. ~! `8 Q8 E! ~* S
9 A. V# x& R" n- P# authz-db = authz4 R4 S9 g# z1 o9 [& i

+ U+ {- V* E! X# U
* s1 U' m9 J: T- M7 A/ Q) w然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效7 e. K- B) c: _
2 a2 C2 A5 W& I3 X0 j& R0 o+ d
登录名=密码2 m" [  J2 E/ g% K

8 @' H5 g; l! i/ P- kuser=123456( f+ j! {0 }  E& |9 q* e, l: d
6 d: [" g# F" z) ?. O

: c, c: x% I5 ^- `0 x最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
3 @' Q5 S# M* c3 I/ ^/ X  t4 ^
4 ?' U2 J) Y9 d7 M9 B) K8 s+ N# * = r
; j$ N2 C+ C* |) S5 |! j7 [
! L9 f% T2 ]8 k5 k9 @[/]
; ^3 f5 i0 L7 s, c8 m. x
8 H, e+ y* V) o, m0 s4 ?: Y# Proot=rw
" N+ N: @! R2 W+ V, Z$ G& L. p' a' q5 u, @3 u0 q
这是用户的配置就完成了! I1 n9 s+ M' C% J6 T6 v
% r" H% ~% l) m+ W
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 6 W6 b2 O9 Y6 [8 \' D) p0 J
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo6 g7 T7 s; G# r9 ~0 j2 W$ Y$ O

1 _4 ~# Q* O1 k9 X3 k使用此命令开启svn 根据自己设置的目录自行更改4 B9 [) G+ r9 G  T
# U2 i4 l1 r! v! E
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了) {7 X9 F" m( B* D
8 S7 Z4 {: M7 a* p. M' [

& B+ Z! x* F; }9 o. s" l0 O$ l1 Ywin下载svn工具; V1 q- e: m/ M: |9 R) D! _' X  u

3 N$ l2 C* O6 E) g接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
: [: V; p, Q/ ]7 R; ?. d& L( W8 J9 k* F& y! w& H1 A3 `2 d

$ k4 O# J7 M3 t; g6 X+ t9 Y重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
/ W. @) S+ t( l  G输入你的svn地址 地址请根据自己的设置自行更改4 @  J8 Q5 f# H
7 ?0 E& V1 q( X
" |: B+ [7 J! h. V  K3 k
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
4 U3 E" ]7 C2 c8 C( l+ m2 O$ S4 h/ W

+ }& S4 S4 V# l8 N/ C7 n% |(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
2 r6 u0 E$ O7 T% b) O7 Z' b! y: M1 F- e, V5 b' f0 O. H
' x' h1 b2 S5 {& O" s+ d
# Z1 I+ X, ^. h) g# N
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
0 L8 A* n- [) L# K, S6 w* U2 f9 `! x* N% Q3 y: o8 Y) _* }
这时我们保存在版本库的代码就会被同步到网站根目录
3 s6 K# S6 m) a  O
' W7 t1 N1 I# c  G; c
0 p$ P$ t2 x7 c* g: p, Z+ E7 l6 U+ N" |# L

5 z: I$ O1 \$ @; m# A+ E
: e$ u( A; O! h( [5 y' Y8 {0 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh: B* O+ f: s! D7 a3 g5 w
export LAND="zh_CN.UTF-8"
2 y" T# K8 T% n4 r1 MREPOS="$1"
4 t/ n/ O$ B( a( s/ L# G+ ]5 pREV="$2"% y' l6 Q# k: d; }' E; |) H. D
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; V( [1 T0 t) n. W3 b* }
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 Y: h' w9 F' F' l% Z7 E  d+ M

  1. 6 R+ d( S& P0 w% c* A" S
  2. #!/bin/sh# h/ U" Z' D+ s
  3. export LAND="zh_CN.UTF-8"( o) Y: @; ]4 k/ C- N5 C, r
  4. REPOS="$1"
    5 D5 T) A# U! ], |9 U6 i# d
  5. REV="$2", B7 m! g  L/ K0 l7 x
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    * Y) }6 L' C2 W1 S7 E
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
3 X0 i+ |2 r3 x3 T' G4 _, U
3 a5 U9 Z+ a4 o: s( h
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
6 X" Y; @- a8 E, kcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( t$ Q8 k# y7 S9 C+ m8 X, [# ?
+ }3 T; {; N$ \1 r8 g! M/ y- M
  1. REPOS="$1"
    % c8 Q9 y" H( S' W, T& G/ m9 N
  2. REV="$2"
    ( ]# R4 C& H8 N, g9 u
  3. TXN_NAME="$3"
    9 l3 _. p. k+ ]' k9 a) N/ E
  4. AUTHOR="$(svnlook author -r $REV $REPOS)", R- j" x+ P1 X  I) x0 @/ ~. g
  5. MESSAGE="$(svnlook log $REPOS)"
    / \2 i2 q  ]1 ~2 e" e* n
  6. SVN_PATH=/usr/bin/svn
    & a8 ~2 Q$ N; `
  7. WEB_PATH=/usr/share/nginx/html/ssyleo- F' Z# T, C. `9 b5 y& _/ v( J
  8. mkdir -p /var/log/svnlog
    % D5 w4 X# S: i1 g3 f) k* ~: w
  9. touch /var/log/svnlog/ssyleo_update.log3 ?+ T$ j: N& h
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log# k5 n4 e  X4 H
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    * P# T5 _- Z# [4 V( C4 n
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 n- M% {5 h3 h5 W) b  \
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    4 a6 U8 _5 R2 l  h
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

8 j$ b5 S2 I% E7 Z. f' U' K1 f0 I$ C" y
  1. #!/bin/sh; m% k- M3 s1 W7 `
  2. #设定环境变量,如果没有设定可能会出现update报错5 ]4 D+ x  Y& b
  3. export LANG=zh_CN.UTF-8
    $ r: J, X" ]  U6 [/ @  L% k
  4. REPOS="$1"
    5 t0 c: J) Y  H% A+ O6 g
  5. REV="$2"
    ! ~3 d3 _4 N! O
  6. SVN_PATH=/usr/bin/svn$ d4 R$ Q9 o5 m6 f
  7. WEB_PATH=/web/project" E* c2 ^0 H% Y
  8. LOG_PATH=/tmp/svn_update.log5 f/ p/ O1 v7 i( ]7 M. p7 t
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache/ x  R  t2 a- G7 r( N% e( R( j9 I
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH2 z$ ^& t. w. f8 A) F" y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH: W1 {9 X- K+ C4 F
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH5 c( A) K/ a1 g- e. U5 Z1 ?2 l
  13. chown -R www:www $WEB_PATH
复制代码

- |$ l1 x. k8 P- ]
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 09:14 , Processed in 0.123416 second(s), 21 queries .

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