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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介% L# y+ B9 u  j8 @$ Q! a
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
/ @8 B7 e- n" j' c0 [- }8 W1.准备工作
( W7 ^$ O) U% @6 G一台centos7 服务器 一台 客户端) D# O. s1 T7 c8 Z4 K; r
————————————————- [/ y. r/ v3 }0 q1 T: `
1、验证是否安装了SVN
" q/ Y/ h8 u9 ^: A, R+ m' e) I! H; V; f4 b/ q2 T% l
命令: # rpm -qa subversion3 ~& N3 t& Y  L* ^
" A1 X! `5 k3 T& a3 f. f
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64/ P  o* ~: R" H0 A

6 P" C: ^4 w7 @/ T0 o* ^# J2 e. t否则,空白
+ U  E- P5 I: h  L1 O% z- A- H4 [; D& q$ k7 q
2、安装SVN的命令
& s5 s9 l, K/ j7 v$ J9 r) |  \' i" c$ M4 {
2 l  e" T# ]+ n- X; N# yum -y install subversion
8 z, Y/ A2 P$ s2 F1 `1 c
6 O; ]5 M+ `6 Q# n接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
7 i; B) s& w! f* S4 g6 A( e( M创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
9 ?, E( A- u$ b9 E; K* z1 P+ Y* s5 d
) H, v. }7 Q- v! b6 g; U. H然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
" m# F' \4 B5 h& x+ x) @
9 C  D6 T4 x, `1 rsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)5 h- ^* y$ o& M. T2 K6 n# a8 V/ J2 E

4 S. F  q5 B0 r
2 x0 K7 k- e0 Q! U% E首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
" }2 D6 |/ K3 L, \. s; y; t) u& E2 Z; `1 \8 h4 a) @, i4 H! a' t
# password-db = passwd
9 Y% v! Z' ]6 U$ \7 ^( v! u. _
' s0 v1 a( x. @! l5 b  W/ U# authz-db = authz* u7 U, s, ~9 V9 x% c& M

# s, A' O! h! |& z9 A) _* @0 @. `% Y4 u2 a1 A6 l
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效. Z+ P7 e) G$ b3 i0 U8 q# i

% {& ^- U% I) b3 D! q登录名=密码
& X, r5 @- ^: `6 J& Y
, l1 ~4 r4 |: Euser=123456) i# G& G7 }* w: j7 w" `+ j9 R% U

1 ^- M' y8 S. j
9 j) p- T5 F3 H9 \! j: o3 B最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)5 A' E5 f+ z! ?6 y+ T/ G
: ?( G' c3 D: j: `
# * = r
! Q0 o7 _( K5 ?5 w  G, L. D
3 [6 g$ G# ~7 w, s. T) d+ R[/]
6 ]5 g# n3 I7 r5 Z; f0 s/ ?$ Z! d% u
root=rw' W4 D% Q, x9 A, i% Z# ]

4 g/ B6 ?( }+ Y3 J7 |  g; o4 T9 q+ _这是用户的配置就完成了
  V, I  Z, ]& i4 H  t
6 N% Y; @+ \( J5 x4 @, ]5 o' K接下来我们就需要开启svn svnserve -d -r /home/svn/blog
% D+ A) _1 b4 j* ]8 l# usvnserve -d --listen-prot 端口 -r /data/svn/ssyleo# ]$ V5 k2 v$ J) o8 T) ^, n' [+ u
2 R+ Z) R0 x* d8 L$ k4 R. @: n
使用此命令开启svn 根据自己设置的目录自行更改
9 x! C& h2 G1 T
: J8 A- m9 A& [+ w2 S; ?' k" b使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
& Q1 q( t: u4 {0 ~2 r  p# z0 G, N+ g2 Y

; }7 n& H. r+ s& Ewin下载svn工具* x. x9 _$ u* v, ~  y- J
' g0 d  _7 d+ g$ l  T7 {
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了) |$ P% z* r; t; t/ @3 j
9 D( T& ?& `4 f& W
' H) W4 V% C6 t, k
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
. W3 o2 ?- u+ R" Q: s5 d输入你的svn地址 地址请根据自己的设置自行更改; [  t6 {" B- K: L6 S' k
& `! K: C8 D' \
: P/ ~! @* m9 Q* a# a
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了7 F2 I' ]: U0 ]; I0 e& I
: T" |  q' R  F

$ e8 S$ n$ J! E3 v6 l* e0 p/ e(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
7 ^, v- I2 t* a) p" {" I
) H' t+ f0 C# ^: c# i9 e
4 _' m, A! d) Q* Y) m/ @0 i
3 s1 X1 c( C. S5 X9 W可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; b$ {% X* X0 d: F; t3 n

# z0 \. z/ e. g) Z8 L这时我们保存在版本库的代码就会被同步到网站根目录
, V+ f& q! P$ P! V& J) u% I5 D5 T1 R

: }) U, j$ s5 \! ?4 I" Y3 R* U/ |5 n* |( a+ ^* X" _& z# W
7 T) B8 }- J! v( o" j9 L* C
( Q6 ]4 S3 Q% D' J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录6 K# o6 [# y* I! ?  Y
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
5 R% D1 m+ L5 y+ m% L
6 C$ U2 M& P, l. V2 V! Y: w& o8 ]& Q
  1. REPOS="$1"" d: [" l  {! A3 P, T) Z$ Q2 j2 f. }& }- j
  2. REV="$2"$ u% G. X. B, R2 }& |
  3. TXN_NAME="$3"
    . p0 m" k) @* }  J3 @8 b
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    9 ^5 I( K# p2 x& S6 t0 U% {
  5. MESSAGE="$(svnlook log $REPOS)"# x* ~) \0 f) ?- q
  6. SVN_PATH=/usr/bin/svn
      l6 W6 o- X; W+ t
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    5 ?8 @7 S' }. R6 D3 j( }
  8. mkdir -p /var/log/svnlog( v9 a6 O2 Z+ Y2 y( h; R1 j* q- l
  9. touch /var/log/svnlog/ssyleo_update.log
    ; [7 b  b) g8 H/ X4 H" O
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    % j" q  x# T! q3 U
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH% ~! d) t) x/ D8 ~
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH0 @* c/ _/ R7 ~( j$ N# p
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - P( K) I" n2 J  b' A  P/ I  C& F
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

" |; K9 T# o* q! i: Z& H$ b7 R/ ~5 p
  1. #!/bin/sh. U* M1 C$ L. B  t7 K2 H! a4 C" W
  2. #设定环境变量,如果没有设定可能会出现update报错
    : i' e0 m$ H7 E- p) g9 c7 A; W: K6 ^
  3. export LANG=zh_CN.UTF-8( O- G+ G0 a' i. _+ @$ {( H
  4. REPOS="$1"
    6 G8 n; R  N( T4 ^  F% z/ K
  5. REV="$2"
    " D6 Z- U* a* u" G
  6. SVN_PATH=/usr/bin/svn8 V" V; P7 c" S& D+ j
  7. WEB_PATH=/web/project
    & N5 D5 Z( A- A' O
  8. LOG_PATH=/tmp/svn_update.log6 Q/ z+ q, b0 |  U8 Y
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    : d2 w  N& z% k8 _1 i% [! Z7 T
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    6 w' d4 T: F: Z/ |; C) v
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH$ D' A+ Q7 Z0 z4 p) p
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    3 Q. S: }  o: n% i0 x# P7 e8 t
  13. chown -R www:www $WEB_PATH
复制代码

" L. c$ Y4 k4 N  k! W, U
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh& e3 W0 [  O  D$ f( W- t2 C5 U  \! G
export LAND="zh_CN.UTF-8"5 o4 W3 [! t: v8 z, ]( B5 B
REPOS="$1"
8 D1 U/ A' ]( ^9 i9 a$ t% XREV="$2"
! J9 J' K/ Z% A' p, s" esvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
4 U1 g0 ~8 U, @2 |. Dsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache: [! n# Z% E9 m

  1. 3 F+ L8 f1 I4 N7 v
  2. #!/bin/sh
    & v2 \9 q/ A+ S  q# _
  3. export LAND="zh_CN.UTF-8"
    * C) e  E, S! D/ x9 Z0 h
  4. REPOS="$1"6 f6 c6 W1 s0 J2 z  S
  5. REV="$2"
    5 \3 V; V' h- Z1 J
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache3 {1 f+ ~% i* f$ ^8 T5 V, C$ q
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
4 R7 f8 M3 p3 u! C

2 J. Z& E2 f, p0 V3 F! Q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-23 17:53 , Processed in 0.110857 second(s), 18 queries .

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