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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介/ @' z2 G! l* |1 `
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
+ |4 _) A8 Z6 J, ]* S. [" Y1.准备工作: b( \4 ^3 Q  m" P! u. ]! R6 L& V
一台centos7 服务器 一台 客户端$ J: r7 B$ q3 T' M+ L& m0 s
————————————————
: w' w! a: q9 c: G2 G1、验证是否安装了SVN% I5 L: f! g: M+ m7 ^

- R6 o/ v) s/ v6 a8 Q命令: # rpm -qa subversion
/ |1 S' ~/ a2 C! m
2 A: h) H! b5 Z. n3 n如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
7 y. W5 Q' h+ H$ Q- Z* d, U' l# X/ j% Q
否则,空白. |( E- v% u' g5 {; H5 [1 t3 E/ v- k

7 O' e7 n1 e% o9 @2、安装SVN的命令8 T1 T' ~; k, P6 D8 p
. m+ P8 I; V' v
# yum -y install subversion" n) s) ^% E' V
4 {& ?( c4 r, [, O8 \, _
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
0 }0 H# p7 g2 b创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
+ y( s0 H5 i/ T# ]* P1 j. }0 t6 p: A# M  R9 ], R
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
% a7 {) b$ J, \4 Q( Y% K8 ~3 Y
9 l3 K3 f" S( d$ Csvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)  C. ?0 S! k5 H1 o* H1 J- N
* a# E  {8 D, |

2 Z) J$ R: A. w6 y. p首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
8 g3 |; n: |1 [+ j" W2 e! p* L! B2 h9 U9 r6 ?6 d/ l
# password-db = passwd& e/ I/ M% b: m- Q
; n2 @* t, Q5 A6 X6 L5 j
# authz-db = authz
3 u* q9 p2 h1 _: C
* T/ z9 m2 w) z, h" [5 Q4 _3 U) e) b0 Z; j% t0 N
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
2 b  Y1 R2 L4 B; r+ ~* K' C8 Q
  d( {: G1 L: |* }; q. I登录名=密码
4 l' M2 U, x" V; l& p7 K6 ?4 [3 G& }$ q1 S1 x) E
user=123456+ ~2 V5 j. Q- g7 x
% e: ~& M9 J+ Y3 r/ _: M7 d$ P

, a( Y  o7 C( G& v( m最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)6 r3 w+ ~+ e5 S4 G8 F2 G
! l  p6 Q6 B0 h, j1 k. j
# * = r- _2 q4 ?  g0 p: F( q- `/ D

' m8 e4 C9 [# D1 V' c) ^6 ^, _; k[/]
9 U- `: o: h/ R/ M: o: ^- z; F* Q% p3 t/ \8 G" d2 p' d6 R5 u
root=rw
) c1 q" i' }3 o) Q, C9 ^5 }. ~6 c- y; Q: t" k% f' h
这是用户的配置就完成了. D/ x, @" s2 Z- M' s* }
! R3 i) C5 ^/ t. A' ~* N2 x
接下来我们就需要开启svn svnserve -d -r /home/svn/blog , s0 ^; Z0 g+ Y9 U; d+ c# ~
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
1 y: y! L* N0 Q- s4 G+ e7 Y
3 P! {: @6 \8 j. k5 M2 L2 x. F使用此命令开启svn 根据自己设置的目录自行更改
/ t! W2 Q; T/ L! I- e7 M0 o& N1 O7 T" E- G1 b5 M
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了, H) e& S! [" F: w
' i  x/ G& y' `* d5 V: ^9 i8 l
2 s5 D% e5 N# ~
win下载svn工具4 f" o* G9 ^1 a+ c4 ^

3 r+ f7 _. a/ K# Y. H8 R5 ?: f' f) L! W接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
; A& W: A; Q: D, j5 ?! C1 H
2 W. u4 m: j! v% I2 V% M
- c6 S; @  o" `重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码* S( c( ]" r0 r# q& Y% x1 c- j
输入你的svn地址 地址请根据自己的设置自行更改, j1 V1 v0 Q' `) }
, {7 s* H3 @+ P: P7 w3 ~3 Q

! B, h) n- a% z4 {& h然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
  N! V  `; ~6 h% f( J2 d3 U2 ?! O. \4 Q
. b: c4 d9 I0 [& e! P4 M5 i. U7 r0 q7 ], S, W6 T% ?* p. f; p5 ~
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码); d- L5 d) G" f  x7 r8 g

. W; O9 c; n* D: E& |1 [/ A% D. b
  P" L4 G9 N0 b. F' q( c  g8 F
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
2 v& v+ H: ]# o6 [8 B" Z7 {+ ^/ u. j. F
这时我们保存在版本库的代码就会被同步到网站根目录
& x9 Y8 I! s9 j3 m9 |! n' s8 d  l, \, p% s3 B+ O! v/ A* q

1 w( {: A* ~! K+ l& p* Y1 G7 `! S. d/ X. x/ C9 D

1 d* y8 ^% M' E. [% M! X+ n. G; y/ y( q( c+ G9 v3 i( D+ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
/ D0 ~5 U: B/ s% d; ycp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
' I4 t& r5 }1 B& o0 P% L2 E. L" K- a0 M" i4 K' s3 h
  1. REPOS="$1"6 ~2 r( u: c& k- h$ F3 x
  2. REV="$2"
    5 Z8 G5 A) B& s) P% f3 |, Y5 X
  3. TXN_NAME="$3"
    ) l/ G+ g2 E$ j1 W  K$ `4 m3 ]
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". f3 v; i4 [' c7 |: |
  5. MESSAGE="$(svnlook log $REPOS)"
    + a% h* N8 g2 [# M. W8 L! C
  6. SVN_PATH=/usr/bin/svn
    3 L8 _! D4 ?( I
  7. WEB_PATH=/usr/share/nginx/html/ssyleo. {; Q% E5 P) U0 Q0 F
  8. mkdir -p /var/log/svnlog" q, a8 P1 T' l6 P* {' h
  9. touch /var/log/svnlog/ssyleo_update.log7 |3 J) J! f8 H; R5 l. w
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    " T* f  ^# |2 Z1 {6 B1 j+ V$ A1 ^
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH( o; o* U$ e9 n7 a# |4 ^. R
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH! L" e0 T$ C% s6 T
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH' Y0 G; y- m# A/ d: O
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

# K* K/ G4 C" w- l& h! S! V1 y9 u3 R4 {5 ]$ ?. P& B1 d1 q
  1. #!/bin/sh9 `: P; n, @3 m7 N/ r% ~$ E% s% f
  2. #设定环境变量,如果没有设定可能会出现update报错
    5 u, Q# P% E$ w& a
  3. export LANG=zh_CN.UTF-8
    6 o4 R# n$ N. a8 y# y
  4. REPOS="$1". _0 G5 I! N7 V. l
  5. REV="$2"
    - n7 N! [! C5 [$ v; g
  6. SVN_PATH=/usr/bin/svn
    + j  ?- I. [! N3 p
  7. WEB_PATH=/web/project
    . J3 [8 E/ T6 k+ N) D& ]
  8. LOG_PATH=/tmp/svn_update.log& w) }& m! Y" o' Y8 [; `8 |
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache; v7 M* I% t8 E8 I( l
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    . _- Z% ?+ ~. M! N  G5 X! i
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH( h, P+ H3 W2 m0 K
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH( U& d+ P5 {9 D9 o$ Q' ]+ X
  13. chown -R www:www $WEB_PATH
复制代码
& z/ k) m  x; O$ a4 f- t6 n
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
3 I2 R- Z2 r/ {0 q7 Eexport LAND="zh_CN.UTF-8"
7 T* M% Z+ a# h1 Q5 k1 sREPOS="$1"" B" d) F8 i' {$ q4 T& u
REV="$2"
% N. ~7 U' U1 v% C1 msvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
. U1 ]5 c0 _1 G. ^3 }( d, Psvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 M% y2 h3 W3 Y' w. {

  1. / [2 p. ]2 |5 R# I+ f3 Q
  2. #!/bin/sh
    ( v0 Y3 r; A: Q$ c" x- _! f2 B
  3. export LAND="zh_CN.UTF-8"
    / b; K$ D( t; F) F: q
  4. REPOS="$1"
    0 N' Y6 p0 b* N& C3 s4 x- `
  5. REV="$2"
    , H7 P" G1 x* |% Q; j6 @, C! W' G/ I
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    8 v, I1 c: z0 U0 ~) Z
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

$ ^" N$ x% r  u5 I0 u( f0 j8 i' b/ ^7 |! R# @2 g- g( A4 t" ]
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 15:23 , Processed in 0.060290 second(s), 21 queries .

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