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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介. z9 j% `. H2 u5 l/ g) s/ r
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)- g' R( A6 l; G" _
1.准备工作
+ X6 e; H" z3 M) V一台centos7 服务器 一台 客户端
4 Q* Y0 e% d6 ?( F————————————————
% M% r, N: T& C5 D1、验证是否安装了SVN# P, [( j& X! ?7 }( n
4 S1 b+ _  \2 r1 _5 i
命令: # rpm -qa subversion
, q- q) h; Q8 Z! {
/ e6 l" E5 S% r, Q8 X" {* s" ?' b如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64) C4 Q8 Y2 y! `* K# U& G
& ^$ z1 r3 B* y8 x3 u7 a/ S
否则,空白# a+ o' @9 E8 m- s6 |
" P) v& }5 r7 z: ]" C1 o
2、安装SVN的命令* I0 q2 u2 ]) E! o+ a( a
( l9 K$ d  V  D
# yum -y install subversion( J9 P, B. q; @" C

% v0 [' U; |" f, Y接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录. A% B( ^6 ]; i8 R
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了+ D' ~* }* |6 }8 ^  L4 N, E  g5 \& T, \
7 |$ v) K$ h5 C) a
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
/ b; P* \6 h1 U4 g
) z5 U/ Q! q/ }4 r6 A5 U1 p: ]svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)  Z8 o2 T5 G. W* f: {' F7 k* y2 A
# {: S3 z) i- L7 ^

: H1 `" c, r. f* w; n. V" C首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格" q( F3 I4 I- S8 ?* t5 k

& V1 d- C) Y, M7 r) G- Q) R# password-db = passwd
: x8 c0 `0 t# l; i* }- l2 f9 D- M/ s' Y: h
# authz-db = authz8 W2 e8 N& [! t% |! [$ P% G$ ?
# @5 w8 Y; [0 i6 r6 m& E
& z% ^5 I0 S9 Y- O/ M# Q
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
# q( D* U" O) c) G& `; R; J; y6 \* r
登录名=密码9 X$ ]0 Q! Z, @' H
6 D0 D3 A( {: \0 `
user=123456
. z2 K4 w+ E; K% e8 \  I7 P2 g, x7 q& t0 p
+ ^' H0 O* H0 B* G' G" G- L2 C
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
4 W$ G8 l7 R! E, N
* Q+ u0 m" t" H4 _* E1 p# * = r$ A' K8 z# a) X8 E$ p8 r( ^4 o2 C

: y% R* J0 u6 v2 A* L, i[/]9 J  @/ y  ]: z
: l( B  Z3 ]1 l+ _7 m  Z
root=rw
1 m7 m. q7 p# T* ?: i  s3 J5 z# g
+ r  M8 g7 g/ p% \% y* \这是用户的配置就完成了2 e% |6 Z$ Z  _; A4 y! [7 Y1 Y

1 w* M. q% [2 p接下来我们就需要开启svn svnserve -d -r /home/svn/blog ) j+ k3 g+ l( B; z. g
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo! Z" G3 s+ m& g+ {* P
' ~) ?; W( A5 l
使用此命令开启svn 根据自己设置的目录自行更改
% s  E) R5 G. |
# u, C& p* B% u% o使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 H+ S2 b2 ~' C4 k( G* e9 {  |
  A& d. \# J3 O
* ]9 V: Q- \5 y$ twin下载svn工具' |+ I* J/ g/ K, ^

+ H$ P& W5 |' N  p接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了% G3 ], O- g& i% {* X- Q$ |
* H9 P% g7 x6 H& F( K& b

8 ?( m+ I; a  K5 G重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码  v/ u% {, P$ O- X% A$ @
输入你的svn地址 地址请根据自己的设置自行更改
  _5 L' N) p4 _
; v( g6 J3 u  [* l' `3 v" I
+ @: |/ l2 s  l2 w6 j然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了3 Y9 l, B0 F; t+ G) K+ V

0 \; |' a/ B( V
6 Q* N& |1 D0 i1 p( w# _9 E: l/ @: r(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
* E9 p. |6 n- W9 y
8 d8 f$ c* ?6 @. e( N$ p9 X9 y+ i2 o1 P
# |, _7 R( l! ]9 L4 ^
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存8 r; k: s! R$ i" M% E& |% o; g

5 e$ p- X0 E7 K4 h6 }3 A6 r这时我们保存在版本库的代码就会被同步到网站根目录
* s1 s6 E5 k8 f9 o( s
4 ~7 Z$ O; Z, c; }$ h" d, \' a0 ^/ F7 t& i8 o
  x) J5 v2 K$ W" @6 E7 p
  C% i7 f) ~. x/ D, A' Y: @
  N, p) `2 Z5 Z. e: h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
7 ?7 l# V3 \0 |+ y7 k/ j, I0 Wcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
: q" O5 J  ~  F  Z# N& C0 s4 ~/ {/ O# w4 g
  1. REPOS="$1"
    : y8 _: W) \( s. b; C: Z
  2. REV="$2"$ _1 h% \* |& S* M: V2 O% W- W
  3. TXN_NAME="$3"
    * Y1 S" R- y; A% ]5 E+ m
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    $ f2 Y5 b) _) v8 x2 W! s: y
  5. MESSAGE="$(svnlook log $REPOS)"
    2 j% \6 f3 ]* [6 d& T( o/ B
  6. SVN_PATH=/usr/bin/svn  {) Q) T% G# F
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    0 ]" }2 [* V' d% w+ i& B
  8. mkdir -p /var/log/svnlog6 c  Z" F* ^6 n) b- V+ H- W
  9. touch /var/log/svnlog/ssyleo_update.log
    1 L, P( _( z# X! f
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log, G; m3 `6 U) Q1 X
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 M# @4 v1 y; `
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    & W# p6 P+ e; ]- v7 `0 d8 S( f
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ! W! i+ o' y" \. ~2 s. p4 z+ w) Z; ]
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ q5 e, z9 H4 j8 z* m; k
& c7 A+ d  P- `. e) ~' y% e  R" z9 T* N
  1. #!/bin/sh! a# d0 @0 E" x, K3 k+ J
  2. #设定环境变量,如果没有设定可能会出现update报错* b; I3 X4 R; M8 j' \! D" ^, X
  3. export LANG=zh_CN.UTF-8
    5 X0 x& B& c# f) V+ O1 ]$ ?
  4. REPOS="$1"
    * K7 X1 K% L6 D0 g* C' n4 E
  5. REV="$2"9 G/ B/ ~/ C4 [( E4 W0 e% i) Q3 H
  6. SVN_PATH=/usr/bin/svn+ O: Z0 U# U- q! ~; o) h) _
  7. WEB_PATH=/web/project8 w/ p, P, V' V( ?1 B
  8. LOG_PATH=/tmp/svn_update.log6 `: }$ U* H3 W$ ]
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    + k! p: Q, J0 D; R* d- B2 g
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    0 r* m. `' E* l2 h0 d
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    6 y, G3 ~# n+ l. ~* N
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    & t2 _& Z: C3 r8 m
  13. chown -R www:www $WEB_PATH
复制代码

$ W5 d: C& k( @% P" c: \
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
$ A+ j, K2 h6 M8 y0 aexport LAND="zh_CN.UTF-8"
) [1 |2 f5 O3 A% dREPOS="$1"
$ q% F+ |4 U$ }4 yREV="$2"$ J. p, {2 U: E
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
* y* j! ~7 j1 u' u3 osvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 g. Y! Q! n* V2 ^5 @+ x

  1. - W" _% ?8 g: Q7 n- c
  2. #!/bin/sh. ^+ w6 |# T0 t6 b- S. Y
  3. export LAND="zh_CN.UTF-8"
    , O8 u( K  d7 t5 \
  4. REPOS="$1"
    0 e& t8 B, u3 W/ f1 n# Y
  5. REV="$2"
    * T' J  f  H4 |* s4 ?
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache1 d3 N3 Q3 |" P7 D5 M
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
* q, z% x4 d0 Y$ C6 s& c# f0 ^& ?9 b  v

: g8 ^( G+ d" I; a+ w, e
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 06:24 , Processed in 0.108975 second(s), 18 queries .

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