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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
0 x/ c! k* D, _SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
! h6 r1 X* C0 g, C5 y3 S% D1.准备工作
- {& C7 W4 K9 e9 ]( Q# `一台centos7 服务器 一台 客户端1 p5 h2 `$ N! E0 Z% D
————————————————3 H9 z9 o& U3 f7 F( ^$ _. Q
1、验证是否安装了SVN
( p2 G# t" ~. N6 {3 v) ^
0 f7 F* }( s1 a命令: # rpm -qa subversion
  |! _( I7 z  @  ]
9 u4 x2 Y0 m, n8 H' r& Q如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
* d4 \  |' o: m/ H! \# {1 F
8 u/ D8 y3 \/ g3 x5 z否则,空白
2 g: O% `3 r4 R6 y5 ]
, q. |4 {/ I& H9 o, C9 B2、安装SVN的命令
$ K; |3 l6 |! a. C3 j. m- Z: h: |' h: S: S5 V2 `$ b
# yum -y install subversion. C) I; [0 }0 d$ V  G1 U5 ]
/ d" R, d* j7 l9 ]0 `
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
  l9 l1 U* d5 f$ J: M+ }  B创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
( n! p* U7 S, U5 V* G% e) ?6 c0 C+ X- U  X# h
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置* @  H/ b; \/ q- n

  F) x3 g7 r- J* Z3 Y) r. Psvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)0 P8 y& b) u: k0 U

! R' q* \6 \" w5 {; U
- h- i- v2 f5 J" ^首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
. f# x* V' ^/ u  U6 M% ]/ m" r
" }5 {( v7 G3 Z% ~# password-db = passwd2 J4 A" H. U6 u( F5 ]

9 g6 i! ^0 i& q; L2 y, `# authz-db = authz1 q0 _1 I- w7 Y# \: D( I
' r( h1 r. X1 e' k- f" o6 I
4 \: s3 A, T0 N& `1 U4 g  F
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效7 @2 Q9 f) U# ]" ~# [: r% Q4 R$ B
, n6 ^3 q- e- z0 a( y7 |2 M  j
登录名=密码
0 `0 D8 f" N$ z" i) U
0 p" d8 ~1 E+ q1 g" G7 Iuser=123456
- g! L1 O6 r2 s/ x; P( Y1 d/ h, w6 c; X' W* k2 x" n1 Z8 y

  b) }' r8 O* S( }: L0 s2 C最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
5 |9 {0 n9 T" V) j2 B2 {$ I5 [/ t/ `4 ?8 r
# * = r# c, P5 {, G# V) e

3 a8 R- O/ Z( n2 m# S: O$ V[/]
/ A/ ]( R9 t7 u/ F. z& d, h- e6 S3 D& ^( H9 H0 X, K
root=rw
; K2 d! W# s8 A" O; v1 t% s
$ V  L; p# r' e+ @$ c/ i这是用户的配置就完成了4 K2 m0 T+ f3 F- t5 K+ H% k5 s' o

9 ?% a0 M) E+ Z6 e) ?/ [+ k接下来我们就需要开启svn svnserve -d -r /home/svn/blog % x5 {2 E' |7 x
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
0 f7 O, j. F! a2 U  _& X) }& B, H& K/ t
使用此命令开启svn 根据自己设置的目录自行更改
, c0 ]$ e( V5 i& f$ T, C2 D
& P3 Z5 N# R7 f5 F( S) U使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了+ \1 v5 A% B- T+ Z9 j# m6 o9 w1 x9 M. V

) L5 C0 u/ \- o  k; J2 Q) S( z0 |$ W# ^$ z  o; X
win下载svn工具
+ @! m7 b  H% V4 l+ v9 V( _1 W8 l9 {: C; ~  m; T. O
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了. c  Q% ]/ x6 G+ U! u
& z! R) E% K" ]3 l
+ E2 z4 V6 d3 p3 x8 R/ A! w+ A
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
0 v" \" N8 o, o; r+ a( T( h输入你的svn地址 地址请根据自己的设置自行更改
/ R$ O+ |0 w# i6 B0 E7 R6 s. `; [7 M. A

1 ]+ D5 k1 F  l* L: E) T% L3 M然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了! f# t9 D, c, S3 Y
, y7 i; u9 b' l, G
0 Q8 n: a& w2 W  Z* ?+ a  B2 }5 ?
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)5 i' s, y5 H  g! C$ d( f
' ]- L. q8 p% r8 H) h3 f1 T; l
  \9 q1 o/ o4 g+ V  K) j+ v

8 \% C$ R0 [3 H. e" D) z( b可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存8 L% N( f, ?3 _+ g! ]

9 M/ ~- z( s/ A) Z0 t这时我们保存在版本库的代码就会被同步到网站根目录  n5 N7 y6 R7 B# b3 E0 ^
  H- |. a, f9 w( c6 T: A

  G3 l4 d, @5 {7 P, _) }
6 C+ Q, y& d$ L$ P: B; G7 H$ L5 C( x+ o5 b- `2 L

( R/ k; y; ?/ ?5 d  e4 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
2 V/ s0 e. H% l8 bcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit, b. G4 D3 L6 }# I3 I, q* n9 S

1 R' D9 R+ i, A! ]; T  i7 A
  1. REPOS="$1"$ c% o5 c  m8 U
  2. REV="$2"* X9 C% G3 s6 M. X  j
  3. TXN_NAME="$3"% m3 _- `- G2 A: i# Z( ^$ C4 S
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"6 t/ G" T7 A$ x; L) J2 a
  5. MESSAGE="$(svnlook log $REPOS)"
    " `7 n  m7 |9 _
  6. SVN_PATH=/usr/bin/svn; C" C4 s3 P8 Y9 x7 Y: u
  7. WEB_PATH=/usr/share/nginx/html/ssyleo' c& _+ h' x+ h! H: C5 r% H
  8. mkdir -p /var/log/svnlog' k/ e0 A& T# ^( S. `
  9. touch /var/log/svnlog/ssyleo_update.log5 i: E4 m8 D- p! L( ]" m8 A) _
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log$ T" a, N" v, t+ L: B
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 p; {/ m0 g) U; b. }
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    " o. r. `# B$ P' G4 S
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    . t# w& A4 J  c6 w! y' X; u# Z
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
7 O( |8 a! C/ o) T& P. e

- b$ N1 ~( u5 t" t" W. s: a; g
  1. #!/bin/sh
    6 \, U# e& S# N; C8 x
  2. #设定环境变量,如果没有设定可能会出现update报错+ ~8 u# V% R6 y2 H$ f) a0 o
  3. export LANG=zh_CN.UTF-8
    ) k: W6 G9 v9 E# ^2 e' ~
  4. REPOS="$1") _- T) Y9 m! |& a! {( K
  5. REV="$2"
    ! `' X9 v: C. ]+ e
  6. SVN_PATH=/usr/bin/svn
    : Y1 l; W6 \8 N) J9 E$ D
  7. WEB_PATH=/web/project
      O5 P: E2 G8 c1 X
  8. LOG_PATH=/tmp/svn_update.log
    $ |! ], a* x: G# z; |  ^
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache. Z* L' W5 Y: l
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ( v9 D; s4 v4 c% g  n
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH( Z# [4 Y- @. r  T* a8 [- Y1 a; p
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    / K; @7 f; o# K' M/ i+ ]
  13. chown -R www:www $WEB_PATH
复制代码

9 M# J3 L" Q( T
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh# a5 M, o& {2 g2 W! s) w" b
export LAND="zh_CN.UTF-8"
4 }5 }4 P- ?' g! IREPOS="$1"
5 ?  R  ~+ x* N/ t% \6 H# e" JREV="$2"
, R. s3 \' {" e, osvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 `4 b3 E1 i/ c
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 y' p6 e( a6 @4 ]4 t
  1. 9 Z2 E* A& G- P' F
  2. #!/bin/sh5 m* k! e% @+ J% t
  3. export LAND="zh_CN.UTF-8"' I& e. I2 \- ]. t/ ?$ ~  |9 a
  4. REPOS="$1"6 r! b5 E. ]# S- h0 M
  5. REV="$2"+ k+ f# D4 ?" Z! k5 _  z) Y
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache$ f' h. a8 V5 f% ^2 K
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
# B- K7 s2 e3 K4 F
& p) p% I( V7 H, L
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-21 03:16 , Processed in 0.049907 second(s), 19 queries .

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