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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
, X: `8 A) ^. N- tSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
( g. ?8 p0 s& A+ E5 Y3 n( z1.准备工作2 j* C# }& t& ]) E0 E9 X2 w
一台centos7 服务器 一台 客户端
1 {5 k2 K) w. f( e3 W————————————————; [3 m: R% a' H4 G) g
1、验证是否安装了SVN
8 U. F' y6 V1 X& a) P) `/ h/ W: l
3 M% ?3 }$ o) Y/ x! N命令: # rpm -qa subversion( w/ m6 K& ^  i: ^. `

8 {- h/ C/ N. i/ n% f, r8 X如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
- f6 A5 t1 n/ E7 p/ B' g) q0 T; y1 V8 r
否则,空白
" G( D* I, y$ A$ {+ v4 \0 m( W) _# l7 w* E
2、安装SVN的命令$ Z3 a. g- [" c: T+ y0 C

& Q+ w# R+ \4 G8 B# yum -y install subversion  H; T- t6 W+ L; J+ N5 }
- l- l' e: e# G& T
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
9 O7 P1 J( q# P* X8 i创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了9 X& v: D# ^4 n& H' M
4 X8 y$ f9 ?% l) e- n
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
7 K# r6 [+ y$ Z8 _
' ]5 @; H: K9 d& \$ I5 q! Fsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)6 d' W- Y6 _/ J! N  C  w

4 L8 W  ^! t/ B5 ]6 t$ s
8 Y; \4 }- ]+ {首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格6 k" e7 C; O  c

6 |1 ^! P. o4 M" N# password-db = passwd
8 f! A1 k) D3 j1 G7 ^
6 L& _8 o* i. v) s7 T# authz-db = authz
' `0 D2 M/ J0 i4 P* n: Z- ?  }7 M6 N/ \: s, Z/ u+ w, N0 Q

* D- w1 {' y4 ], ^: X+ P然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效7 o' O4 }, F. h4 {+ C0 s# h; D7 d

3 X  x0 I% U) V- o! `+ {; w, N登录名=密码! p& M+ L/ i# l
, ^4 d/ f& L. X! a: W; P
user=1234564 ?8 b& [5 b- m+ }- x" ?' [) T" a+ l
( E3 ?* v# N/ t  j. G
4 ~. ^9 W& k) ~% m% b3 ^
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)+ z/ G; X" L6 b. u! b4 L
- Z  E1 Y/ K% m8 a
# * = r
6 H9 C. b: T2 ?' r! j9 t: e" V. A6 o/ }! O* m$ c5 s! v1 X
[/]: X3 w7 W3 @/ _7 @! a
' Z" i7 w) @; b) ]1 ~
root=rw
* J- X  X+ j* v8 i$ Q* Z2 l- p2 x0 f7 U% v( l$ J$ x: K
这是用户的配置就完成了
* y1 |' b# u3 ]% E6 _% i
: g* w; h! y+ |; g( U接下来我们就需要开启svn svnserve -d -r /home/svn/blog 2 ~% l: r& Y; W. k, u
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
0 I* }/ P1 m- U- S6 x
, y% K- y' ^5 p使用此命令开启svn 根据自己设置的目录自行更改, Q8 q% r3 y& X/ b
' ?& O+ }. C/ i; Q  ~
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
% @6 j! z, y/ a) [7 H0 K5 ~7 Q0 @7 s$ r/ w9 t

7 D( x+ [% x3 c, ?4 B9 vwin下载svn工具
8 b- D9 M' F9 D! R8 H1 |) n; v
) B( |4 y4 N9 J% D% E接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了' R7 S0 U" e  Z0 F4 X% x* T+ d
7 c2 C* {0 X. @& f
2 g: O0 S/ W' N0 W
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
: ~) o7 o1 h' D7 \输入你的svn地址 地址请根据自己的设置自行更改
0 X3 g+ \, z3 p7 p2 k3 K. l# c
% r! ^: ~& G' [- z' C6 P
8 V" T9 H7 c( ^6 J: t, t然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
4 W: j! X% O: d/ b6 B4 ^/ P7 p8 C9 G6 h
# L* w2 O$ b; W1 S0 ?2 `
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
% B9 W% G  p. R! H7 M# n3 ^% W% Z

+ @; `! a: [/ Q7 }, ?9 t6 `: b  f) B: B
$ K3 \; R. x# i( d! C. {可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
6 l% K+ c8 d5 n1 C
. ?0 l5 k# ^! l1 o) k这时我们保存在版本库的代码就会被同步到网站根目录4 _# z* `( M6 k: u' X. i% L

6 X9 Z: C# y0 e1 b
  `! v2 W$ V! M$ N
% Z0 Q+ s+ U- i. G4 A6 Q- X
8 x. p  `6 }8 Q: w
7 P8 G8 u$ r$ l7 Q4 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录1 w: d3 ?3 y5 N; L; D: w
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
/ f$ S/ I/ v/ l, g  P& r* V! G) K: v
  1. REPOS="$1"
    7 N; g1 V1 i/ W1 E
  2. REV="$2"' b+ l9 a  z" i" h6 b: J
  3. TXN_NAME="$3"/ K. ]  ?9 E8 F: F: |$ S! N3 A
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    8 a7 W; r3 `+ N- M# e0 O. Z
  5. MESSAGE="$(svnlook log $REPOS)"0 q/ B7 @/ _: F# K& ]
  6. SVN_PATH=/usr/bin/svn, |# W/ P! N- K: b1 x$ C
  7. WEB_PATH=/usr/share/nginx/html/ssyleo4 R8 z7 ^* c7 D1 M
  8. mkdir -p /var/log/svnlog
    ; q# u6 j% G" i
  9. touch /var/log/svnlog/ssyleo_update.log
    ; N$ A8 y: V* {( _" q. J8 n
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    1 w  e. ~& ^. e2 ~5 u) \* P- A
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ; {; V4 R6 V% M  r- N$ i7 n( Z
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH# c& P3 }/ A" S5 A1 V5 |
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH& J$ i( c' P1 _' ^6 B0 s
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

8 C3 S" B0 G; X2 Z' B* |& [: S7 U5 F+ A
  1. #!/bin/sh
    % s* l+ B. |  G  X
  2. #设定环境变量,如果没有设定可能会出现update报错
    * |& B9 S' \1 H5 L: s
  3. export LANG=zh_CN.UTF-86 q- w, A- t. J2 N! [
  4. REPOS="$1"# O% L0 r' h3 c! b1 t# _9 S
  5. REV="$2"/ Q  H, \5 Q* K7 v
  6. SVN_PATH=/usr/bin/svn
    3 C7 D& u* O4 d4 ]7 j
  7. WEB_PATH=/web/project/ Y# T/ u9 z2 p% |8 {  H9 [
  8. LOG_PATH=/tmp/svn_update.log
      I- @+ T  Y( j' w
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    0 r( y0 l) R/ b6 B2 b
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    5 x! G4 W6 ]# ~' x. Q; {4 K
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
      g8 c  M- C1 V4 |
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH9 n+ \+ O8 u0 m
  13. chown -R www:www $WEB_PATH
复制代码

- _/ n+ s! B" P6 V& l
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
$ y1 i4 u& l' [" `$ R, ]( d( r# Rexport LAND="zh_CN.UTF-8"/ m' v9 l5 X* Y; p
REPOS="$1"4 P4 q/ ^% G0 Q
REV="$2"
2 g; d6 X2 w7 msvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ d! |( y, `, r) Msvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
; Y9 u/ }4 h6 Z& I" ^& V3 x! A* m

  1. ! d* t0 `( G  r5 v
  2. #!/bin/sh
    9 |5 ^: x! l3 u) A9 e( D
  3. export LAND="zh_CN.UTF-8"8 l( C5 \# l' o8 G+ A1 D# x
  4. REPOS="$1": C' u" i8 R9 o: n; |% l2 N+ `
  5. REV="$2"
    % z! @5 Q% w, t8 x9 r) j4 `
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    5 S) e  G# m  |! ?+ r, b4 Y
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

& M: H3 b* H9 C- {6 \; D2 ~0 a$ V
3 H1 J( o. i1 ?' N1 F
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:42 , Processed in 0.077856 second(s), 18 queries .

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