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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
( u0 z( j1 i2 \6 Y3 S6 W/ @! uSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
, C: z& f- {# W- H1.准备工作
3 w4 \2 D$ t" s; q  d6 F( V, U3 N  `' R一台centos7 服务器 一台 客户端
1 L5 i# G0 d5 o. d! l; r, B+ D# Y" r————————————————
5 H, C0 p! j/ q1、验证是否安装了SVN1 y+ l# G; o. c9 }( v* q3 O0 M! Y: I
* K& _* J* i5 L: l- P" P# q! u
命令: # rpm -qa subversion+ n5 c/ z5 R5 C' H9 y9 F' l/ a

+ E" C" e. f. P如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_646 J$ C& @% `9 \' r
: T: ~' n% k0 J8 G% F& p5 Q  @
否则,空白
& t; q3 S. s, Y$ J5 K; E$ Q) L  Z2 [8 g6 G6 c3 M# c: a" `
2、安装SVN的命令
  |* t- T- u% E! a2 |& M7 B2 x- Z" E( R9 ~1 `  z
# yum -y install subversion
3 [9 I7 S- E0 k$ l8 P
9 I* {( m" }' o* I$ T5 O  ]接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
) C. g- L1 N/ g( x4 }* p  w6 @创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
6 ~3 N' f4 O; s' j2 B* c( R, I
0 U" ~5 X6 x3 ~- [( k6 d2 K3 @- T然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
- H+ d6 _2 ?  m# _) i+ B' c; A, }/ X8 _0 V- E9 f
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思): @% U1 m, a$ q

5 V' d( `% q% M3 `
- f, G- L" A. E5 ~" j首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
; B& N1 M, Y0 ~% [$ u- k' ]
2 |7 F9 B( k9 V$ |: k# password-db = passwd1 D" O" _7 N6 B1 d

7 e4 Z& ~; s8 }3 y) r" K" L# authz-db = authz
0 A) B7 V# U4 B
8 y; v% `% K. `. D
9 u; E7 {2 ?2 t1 R, R1 y然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
; F" Q$ I' v' I% j4 G7 b+ X5 y5 I6 m( B
登录名=密码! Y- k3 P, g1 f4 K2 U+ [3 T

2 g) p3 u+ O$ K$ q* wuser=123456
9 m4 t, ^& A! e) c2 ]0 ^0 F- d& v$ x& o; `  p1 Q! y

3 H7 u, j# @0 u- _$ A: X. R最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限); l; v! C0 \* I, N1 `0 M' J) M; l

8 F0 i7 F$ K! e' _5 `$ B: I# * = r" g0 W' D# B; C$ F) j5 ?6 y' @

' ~% z$ _( z+ j0 W[/]
7 Q0 b! K4 l  ]) b
& [' [% g) _( L1 Proot=rw" F1 [4 F" N# D# a; f( K1 W* J" m
: _3 d5 p" B' n' H$ H( v3 [
这是用户的配置就完成了# S! Q/ z- x' D

' }( I3 {- R* l$ {0 c9 k接下来我们就需要开启svn svnserve -d -r /home/svn/blog
! S3 v2 h7 s2 f5 C# b: k5 tsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo
% R+ ?+ k7 e  N4 N8 Y$ M' P
, w8 R$ x8 q8 {2 i使用此命令开启svn 根据自己设置的目录自行更改9 }! W5 t  q# h# C7 b7 u: m

$ g7 T' t9 T8 o, V使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
7 @$ |+ D/ M, P8 R5 R# J1 Z
% L5 y  M0 N) r7 K) q
( z4 u, g7 K" q& Qwin下载svn工具2 b/ X& O# L* t9 X: y
+ j1 _+ A' S, o, p1 C: P
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了0 ]# f- g0 }. d* @# P
3 R8 [3 J/ l& ^; I% f9 s

$ p& |8 M4 x1 @2 r  E2 s重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码. f( O+ j! |/ n# `9 {2 Q) X
输入你的svn地址 地址请根据自己的设置自行更改
2 U: |* K0 T5 l3 I; \( W5 }7 }! i8 O4 `' S$ P

) v( X9 X( |9 q5 |6 ]2 F( I然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了, C% j7 A4 |7 w4 q  \+ I, P/ o
+ C4 P5 w+ }8 [' d" ^! I( o
+ ^% ~# a- o" ~/ a
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
! z1 Y2 f( t! s: ~, K
7 t8 y* r" s! ~- s8 u0 z0 D1 m% r5 G3 M- ]5 U* `8 ]5 J) t
  {: g& Q/ _2 x4 N4 b& d! f! e3 Z
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存/ ~# b5 U6 c7 W" P2 |- Q

* J3 f" I; j3 f& C0 U" M" ^5 q这时我们保存在版本库的代码就会被同步到网站根目录
9 U  B" k9 C( o. G
4 ]  d# m4 f- ?' u* Z! o/ Y( x! ]0 H( n( M/ D7 A* \$ m9 U% E" R% V

: Q6 _# b6 }2 `' b
  i7 |. G. a8 q3 a4 [& A" w  C/ \! R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
& _& a$ w$ c& `4 Scp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit6 g1 _: N' s. {* c$ o/ u
# m; N5 R3 b) T/ v4 k
  1. REPOS="$1"
    2 s* z& u% `- f: c) B2 x, O
  2. REV="$2", p- m4 Y0 `3 q6 q
  3. TXN_NAME="$3"! i; H+ A6 \! L
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ( U: \. O$ R5 Y" g: f0 U5 d
  5. MESSAGE="$(svnlook log $REPOS)"& F% e: O9 n; N+ n
  6. SVN_PATH=/usr/bin/svn" r) x" y( m! i( \: x$ `" V
  7. WEB_PATH=/usr/share/nginx/html/ssyleo! w' W  U0 n$ K9 }# |
  8. mkdir -p /var/log/svnlog5 |5 C1 V: C0 g8 |9 R+ |2 X
  9. touch /var/log/svnlog/ssyleo_update.log/ }5 i& c- h$ G. }, j! J! ]1 C
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log3 n. t6 ~4 f) Z6 P, Q9 X) {/ k
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    % }) ^5 z' Q! F+ c
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH+ p( r$ y3 {/ B  |( F4 V3 w
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - Q4 A9 S. d* M
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
* B2 \! c$ j/ L7 f- A

3 U% B$ A7 l' i$ T: F0 {. ?! j, F
  1. #!/bin/sh5 j$ G- C' u7 G: i& D
  2. #设定环境变量,如果没有设定可能会出现update报错
    % O0 G- g- I% a3 d+ Z) o% m+ b2 j
  3. export LANG=zh_CN.UTF-8' x$ _: d+ f  J
  4. REPOS="$1"# |( P6 z3 `" u! J' v4 _& h
  5. REV="$2"
    & s, r- a3 `6 C7 a/ b/ ^
  6. SVN_PATH=/usr/bin/svn
    : j, w! M! m  G! L2 `( r
  7. WEB_PATH=/web/project* d- S$ b) [; |! M$ k
  8. LOG_PATH=/tmp/svn_update.log1 e; M5 U9 I% q3 T4 d9 f
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache' W1 a' w: B& ~9 x" \2 U
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    + b. j4 ?# S0 i  l9 ^% q1 o& e
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    6 ]" W1 m% D) N9 c% k* u
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH& }0 o( A- k8 L9 ]* S
  13. chown -R www:www $WEB_PATH
复制代码

+ |: G8 }, y3 ~: D
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
' |6 @3 Z: a" `3 _export LAND="zh_CN.UTF-8"# m5 d7 g* T! ?6 y
REPOS="$1"% D  T4 P1 }: s9 X7 N! `
REV="$2": r: V2 W: O, l% l/ o" g; j! P; h7 `
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache' I8 R" }+ _$ K$ a
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache- o1 [$ s, y3 ]7 }% X

  1. ! N# q+ |1 |3 p1 A6 M  U$ I
  2. #!/bin/sh, V; d  e3 V1 f  Y" ]
  3. export LAND="zh_CN.UTF-8"
    ( E, o/ O' w- i0 A/ ^+ F+ W
  4. REPOS="$1"  m! k* X1 I; C5 i- w( B( V6 v% d0 G
  5. REV="$2"
    % |1 Z, Q. P5 R7 h- Y4 n) k
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; Q6 I% C* h/ R, b& e' E- A3 X
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

6 f; N+ R! K3 n" F! E1 L' P6 U' M4 e  I" `0 K  _( k0 U+ V, b
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 07:05 , Processed in 0.078642 second(s), 18 queries .

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