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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
% t  B5 j( G2 f! [+ T9 V4 qSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
, `6 X- `* y. w/ _! _5 U1.准备工作
$ n" K- }+ y* P/ j8 _一台centos7 服务器 一台 客户端
- Z( I0 U$ t4 o. K9 X————————————————
$ z7 s4 W/ c' H* |: E1、验证是否安装了SVN4 U7 X" O' U3 t4 t7 [( h2 M; _2 c

* _: I0 j  E7 k* X0 i1 g; F2 c命令: # rpm -qa subversion
% l3 i3 M2 A5 T( _; A, l/ D7 X' ~- b+ h  T8 y7 N# a7 ?
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64; T+ D: C$ }8 ~( }# Z( e

, t8 L" s/ l2 W; `否则,空白6 i4 S; |$ F% m1 n+ t4 }6 S/ x. D

" p' ?9 D- O* N. R' _' N' \2、安装SVN的命令
# W, S6 B8 u7 D. Y! h+ B
6 Q" y/ K' ?/ Z4 b* u& i' E7 c# yum -y install subversion+ r- E; J+ w# |8 F8 u7 Z
, j0 R# h7 ?* d/ ^0 B# u0 f2 i
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录# ~& s! D3 ?$ I) y7 Y/ A
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
; X4 ^2 A8 v7 @) a( X( Q$ N  i( \" f8 x
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置! J* n* @' ~: n) l! \8 m
5 [5 T" r8 ^$ C: h
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
  K, m9 u$ u: g0 J% T' [- L+ ^
' q0 t& y' u- w
2 c3 M9 ^$ k- g0 E* d首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
6 W; C. {* L- G# W: p; L, n& l# X/ I1 C; |! a
# password-db = passwd# s6 O6 R& A- _2 P* P% @3 _( \

' G( R2 z( W% d# k4 g: D  O: q5 ~7 `# authz-db = authz
, Q# |! p7 Q3 f) e9 v& p+ t. ~8 h4 C0 x

8 c" p4 P: H" j1 i. G然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效/ I$ p8 c1 g" F$ G7 q& t2 R4 q

. [1 Y/ g% \4 L  h4 K, ^5 e* e登录名=密码( Q3 V1 S1 J$ s5 V( M0 C5 n

' ]* Q4 R- o! Z, zuser=123456- H+ k( H8 S9 x( G  j

; r# F8 q4 x5 g
) p: W  N% p; P8 V最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
4 g! b3 X6 q- _! z# y
' B6 S# Y8 z0 g0 ~# W# * = r; ^; i9 P  b. f9 v& u6 G
: ~" a& F* H& m2 c- j1 U6 `
[/]9 _, E- Y5 |0 Y  t$ j. m
! l" n9 J6 K0 ^3 n
root=rw
* h# B1 i/ W5 g: T, ]; q+ u* r6 j: N  r1 d6 u9 {
这是用户的配置就完成了4 d5 J7 [9 R$ T3 m

. v, r& e) Q+ z. T7 `. u接下来我们就需要开启svn svnserve -d -r /home/svn/blog
; g' {! f7 {2 P( ?7 b4 Jsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo' O# b2 E( N- M/ Z# f- [/ q  W

5 j# s0 t+ M4 k) v2 O* ^+ ?使用此命令开启svn 根据自己设置的目录自行更改
1 F7 I( p6 @1 ?  p6 P/ c1 V
" L( H3 w3 C1 A& Y* l使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
% t8 y  D2 S' d  s& W+ s9 A, W
5 K- F+ ]7 t. I# g; l9 u; ]. f1 n- ^3 N7 c  i% G8 R
win下载svn工具
6 |+ Q6 }1 ^: R1 t5 ~* E% b% `4 o; A' m2 X
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
9 E- M; a+ i7 N9 I- G$ \# q: o4 M
  s9 p1 @+ K$ F6 q. V2 ~/ L: `0 x  c+ S* g' \/ l
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码# U1 X' o* ^% N
输入你的svn地址 地址请根据自己的设置自行更改, S3 Z# L4 Q$ t) o8 A& D6 t& M3 O
1 o) I4 y( j9 G6 Q$ M% x0 ?0 _4 R# E

' k* {' D" T% }, m6 r然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
! g  \- f* V4 p1 j( U  @
7 [, i. n% I& N- k+ @  k) c3 V& w: J$ H. I4 t8 e" |
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
$ V( D( Z# f  w9 g* M4 Q  y0 P: K! L  h' T  s$ `, D! F# V  y

& g: d/ N" G7 r  }7 {
4 Z+ ]9 Y+ P& x( Y7 J- ~- }可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
7 Z/ k  J0 u$ ~2 ]" ~
2 T8 o- }2 j; {2 G8 r. q这时我们保存在版本库的代码就会被同步到网站根目录8 u" [$ O% c5 i, I

1 F8 J# W. V+ V. O  r! Y& I- g
6 ?8 [$ Q0 E7 R" W- P* ?
7 k" A. `0 A6 x0 X4 a$ V; G# N9 i0 _9 {- J

1 E* S; I$ ]( M% Z1 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录$ L8 g$ i6 W9 w- I0 G
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 L- l7 k* D7 @6 r, P$ o5 l! a) w) u  e) k7 c" u( G
  1. REPOS="$1"
    / f, `1 J' m. k# u7 i8 G' b
  2. REV="$2"7 f* @+ Y; L+ x  C4 g
  3. TXN_NAME="$3"
    ' A' j6 S7 {% E+ Z% W
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") f# H: X4 q3 {
  5. MESSAGE="$(svnlook log $REPOS)"8 T, {/ |6 Q* q; h( m
  6. SVN_PATH=/usr/bin/svn9 X  u; K$ A! _& d
  7. WEB_PATH=/usr/share/nginx/html/ssyleo- G6 U7 R  O: r. C- g1 I0 e
  8. mkdir -p /var/log/svnlog
      s  S  a1 J, @: Z* \- A* Y
  9. touch /var/log/svnlog/ssyleo_update.log
    ; Z+ `7 [6 M# h$ w9 m$ Y* A" ]' Z* J" p
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ) z' L) N$ k& a2 p
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    2 z1 Y* D) f: Q/ _. v
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH+ o+ y8 P2 }( v; i4 f- Y; q! ]
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - l; Z9 N% b9 s% H9 D! q/ D+ q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
8 B  f! Q/ V" |0 T3 t' e/ h

7 G1 i+ V3 ~' C9 t; ]5 C3 U
  1. #!/bin/sh+ X0 i% G" g; X1 @( Y8 t
  2. #设定环境变量,如果没有设定可能会出现update报错
    % |0 h0 y! ^5 ~1 D/ P( p
  3. export LANG=zh_CN.UTF-8
    % b2 Q! Z4 p8 x* s$ F/ J; E3 C
  4. REPOS="$1"
    * u  d2 @8 G% u- r0 |
  5. REV="$2"( _, Y) r$ r% [9 y9 U) E5 H  K- |
  6. SVN_PATH=/usr/bin/svn- v& {9 \2 ~5 Q8 R- V  L+ y, I
  7. WEB_PATH=/web/project
    " z% j8 X0 t. u# Q" T
  8. LOG_PATH=/tmp/svn_update.log6 q& ~: J& V" W" ^, d7 U
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache6 x" \$ b! Z! F5 _: m0 U4 z! T( N" g
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH" M" H% u2 ~2 t' G& G" J- I* y
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH6 ~- a5 G  \) t4 c6 G! k
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    : `8 z% a" P( K: g+ F2 r& i! _5 {  {
  13. chown -R www:www $WEB_PATH
复制代码
* W* s/ Q+ A# Z( u
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh9 @% ~& M1 f) J
export LAND="zh_CN.UTF-8"8 p+ W8 c' ], J6 _; f. F
REPOS="$1"1 u  u( }* r+ C. c$ F
REV="$2", ?8 n1 s0 [* \( ?( w1 E% S+ T
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 d1 k! T  F- j; k
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
2 B6 ~9 m6 b6 p
  1. $ ?8 L. }3 [  B- ^% z2 M
  2. #!/bin/sh
    # B) M, h( @5 g' b2 W. N1 R5 u9 G
  3. export LAND="zh_CN.UTF-8"4 L7 s9 j: A" v9 D, G7 i
  4. REPOS="$1"
    2 o, b% E% O3 ^; U# Q! n& w
  5. REV="$2"0 V& K) t3 ?* V# K0 g) ^
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) }. E+ p7 ^: G: V# _2 a$ u4 {
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

% T1 f' w4 t4 z
" z( X: P: u, _/ C9 x) S7 n
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-20 19:20 , Processed in 0.126586 second(s), 18 queries .

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