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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
  Z: f. ~8 {- H9 Y  }) i5 B/ E4 ~SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)8 u2 G) C$ t7 W. p
1.准备工作
* d( h3 D  n% r一台centos7 服务器 一台 客户端5 D8 ], {. O' P5 v: s
————————————————
& e' @$ v% o5 Q/ e7 N" P& k1、验证是否安装了SVN
% J8 B4 M2 s* u* ~2 c' S
, W7 O& y# D5 w命令: # rpm -qa subversion
# Y' r1 P1 U7 s& G
0 H$ W! F9 i2 a1 o7 T如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_641 F. \0 z4 S- \1 T( `0 n* B

, n% v" x$ Y6 O) B' Q2 I  D否则,空白
( ]2 R2 ^: e/ H
+ K, g# n9 z- e2、安装SVN的命令
& B; i6 c5 B& Z3 F! @( _9 u- q" ^  p7 k
# yum -y install subversion9 |. m2 D* y0 t
  {! ^7 O8 @3 D6 B/ u  Z; Q
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录$ }' u) n9 G+ _
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ k# ~  ^& P% }6 J" C: f

. _0 \/ `4 c! V5 Y6 ]然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置  H: l3 Y4 f$ J% V9 Y8 x3 ?- f* [7 y
  f; ]4 w- T3 q/ O
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
/ i6 H5 E2 C' @4 I
0 G. k$ M' p% F- l, N1 s& }
- l. D6 ^: R* ~; n  g; u! `首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
1 ], a5 l: B! H- K+ A  X& k' x* o2 Y) e- R2 M" o
# password-db = passwd
1 H! n1 p4 S* E, e* _( j) ?- S& e, @* U- c! Y/ ?
# authz-db = authz
* k  P2 a+ h: }$ H, s& u
8 n& R5 L& g/ r, N# X- V: r8 `$ A# `& Y9 ^$ o" i
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
+ ?4 K/ Q% `/ h- S7 e1 u2 T8 ]: X6 F: b- e  g, a& e
登录名=密码
+ i+ _7 H" u+ T0 A. v  v
9 c1 e; m5 L  H# Y, puser=1234561 V0 F1 m3 n: h( o3 }! t
8 q& S/ \: V: y8 ^$ ^% Q

( [% K1 R/ w# W/ {* w& f最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)5 r% p/ ~7 U0 Q- w) G

# g) Y/ P9 |# h: H# * = r& T% P  Q4 A0 |: |0 Q
- t8 p) x5 Q; [0 _$ Q
[/]
$ b8 d, B2 y7 f$ }% Y2 Y
: i0 j! N! y9 Iroot=rw; Q, h. ^# G+ _5 w

6 Y" V9 M* g8 U# k/ X; @这是用户的配置就完成了( U% M. n  H" M2 A
, A- T6 d. T$ W. `  f1 U) P; q
接下来我们就需要开启svn svnserve -d -r /home/svn/blog * P& J$ P" n3 m  q' Y) ]5 e, O
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
, x+ P, n! g0 k/ W0 v6 z$ V( i7 l: u, f6 Q, p
使用此命令开启svn 根据自己设置的目录自行更改
) S8 R% _$ o* e; \
# x& g3 ?: A/ M1 c7 u8 m6 O使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
: X# b: g( R% n, B8 m9 k
9 e. v8 H7 L4 O& G9 S; x3 z
/ B& a* P; E9 Dwin下载svn工具1 t2 h6 ^/ i1 Y& _/ F
: N  a! o, b4 u/ O
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了3 g  \# |( F' b3 g: t$ w
4 d0 c$ L4 h# q! o1 \! Y# }$ B

8 K( C" h8 {$ r. b. v, k重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码* d% V4 j5 G+ y. |/ a
输入你的svn地址 地址请根据自己的设置自行更改; E9 n( d8 K. J( G4 x3 Q: I2 H

/ C  n5 @+ j' T( I0 [) I/ g1 [5 U# L1 h
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了% m7 S" p2 M5 {0 ~; \! k) E

3 K7 V- `; f, m6 P6 v* I, b) c! A- W" v7 Z- c( q" \% I# H8 F
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
' M, A$ o% L5 ?- @2 W( u8 [: \) m* `
5 @$ V8 W# |( g. T
8 p9 v2 O. S. B# ]# G/ N
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
0 K6 k: q& `$ w/ u, F8 F9 ^1 K0 B" F: _* R7 u9 {2 [& c0 u
这时我们保存在版本库的代码就会被同步到网站根目录
+ n; S/ u  x1 i7 t
+ j6 I% Y2 |! U$ p$ o6 |& q; [2 I$ d
9 o6 Z2 _9 ~" V9 P' }3 V) D$ n5 Y

* r. f- F1 f' }1 [3 @  j& l, V5 T2 d$ q5 H8 Q) ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录6 o+ W6 U7 t9 P" X
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( D, a7 `- W4 Q( ^  f
0 J0 q: @( c% E: A
  1. REPOS="$1"
    4 Y- _0 g! R* R8 \( g0 {  y
  2. REV="$2"" G5 d9 S" E" S1 r3 }$ Z
  3. TXN_NAME="$3"4 `! U8 t  P) L: s  R5 ~* X
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". D9 h) w- E: O; V
  5. MESSAGE="$(svnlook log $REPOS)"
    ) q; X; @5 E5 X6 U
  6. SVN_PATH=/usr/bin/svn/ Q4 D8 @7 [! ?! h
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
      [7 x. B* e0 {
  8. mkdir -p /var/log/svnlog5 i9 P9 O# D/ X( ?) ?/ `. I
  9. touch /var/log/svnlog/ssyleo_update.log  q9 C+ ^! E6 G' R! v. ]+ c1 O' a% L
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    4 u& H$ p1 {6 u6 \  r- ?0 Q0 T
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    0 j+ y/ t& O' X7 u9 y
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    8 i3 z5 c( {3 k, R' k' `
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH" B7 a. S! U  y, `
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

: g/ ]7 K2 g  p
1 t/ w4 Q2 [9 S8 t7 L0 O$ w# l5 ?
  1. #!/bin/sh: \  c; c3 T+ S/ K1 p7 @
  2. #设定环境变量,如果没有设定可能会出现update报错
    2 r# U6 Y  L: R4 M' T" K; G
  3. export LANG=zh_CN.UTF-86 {1 \& [. h( h, C4 g" ?/ {
  4. REPOS="$1"
    ( x: q" E0 x' C6 T( i1 F
  5. REV="$2"7 a6 w( |) p: I
  6. SVN_PATH=/usr/bin/svn
    / z! D( h/ e  I- }7 }/ r
  7. WEB_PATH=/web/project
    ) Z! e$ t" q/ p! N4 W# C
  8. LOG_PATH=/tmp/svn_update.log0 I5 T! W& P. f; l4 q8 _
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache3 T, R- C4 w# O+ R9 ]! g
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    - G# a# I% E$ y& l6 U+ _( w( M
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH- `2 j6 B+ J% e) e4 p
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
      a5 F: A$ |8 a: E& U1 J7 l
  13. chown -R www:www $WEB_PATH
复制代码

( m" I( B, B, q! @
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
! G( |) h  B3 G6 Kexport LAND="zh_CN.UTF-8"' M% d5 ^9 o" |2 ?$ n: }4 b) x
REPOS="$1"# [5 {: U2 a2 K/ g0 c- a
REV="$2"  G$ K+ n* [8 v% U
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( D, p9 K0 R( q. u
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ ?* e# e& d7 f- k- z

  1. ! g6 d7 {5 u# D. o7 T8 c" g) @
  2. #!/bin/sh
    * ^. i+ I+ W5 g
  3. export LAND="zh_CN.UTF-8"
    4 T6 H1 F2 g" G) Z1 i! _
  4. REPOS="$1"
    . A# F9 y0 M# a
  5. REV="$2"' W( x9 L! h/ Z% [/ j
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    2 L  L! y+ O6 K6 q! R% q, j
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ K) A1 l# d+ G3 @: Y7 t( ]% e+ x
2 o# D& }. H- A5 H% L% C) c
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-18 13:38 , Processed in 0.165562 second(s), 18 queries .

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