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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介& P2 N4 Q+ ~1 _- c, S, O6 J
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)& G. Z- e8 e- O
1.准备工作7 @7 O; I" M' W# {+ B) `$ e! N: W
一台centos7 服务器 一台 客户端+ F) Y' j) U; e6 r% q$ N# ~. z/ M0 }
————————————————! |8 l* _3 L1 T: `+ @2 A* X& `
1、验证是否安装了SVN6 `2 I& u' R0 Y0 W  g
5 t. s5 m0 j0 A$ I
命令: # rpm -qa subversion
2 {# i$ k8 t- u; R3 j& j4 q* F1 r& b! ~9 o  A/ j0 O6 |4 X
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64' o  Q1 s0 B% h) d: i6 d

2 M5 V- D3 l2 v9 @- @否则,空白
" N# e  m% m% T8 j
! H7 Y+ @; F: s, Z- l' P2、安装SVN的命令7 C# t3 B: Y7 Y% l7 R# @! K

8 e/ B. }! C& e0 u6 t! g" H" C# yum -y install subversion
3 J5 u! G3 v' y6 w* u8 I' z5 A' T0 ^: B" d& w( G* W
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
( }' j6 c# ~6 `. Z$ _创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了) V/ H  f0 X* F# i
! n7 D  m+ y2 I" p
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置$ v: V& z. H. Z+ w- K+ X

1 k% V" a  B: E! r% W9 @9 T1 Z. Zsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
. f! M: B  u( E9 i( O. D
, c& X. Y- B2 K1 l) H
( `/ U' F$ s9 o1 W' |5 T! _首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
) A3 N9 i0 a6 a- @( x' e
' z$ D" d/ M* Y6 y1 H/ W# password-db = passwd4 E" @1 V* t7 O4 _" o

# O. U( y6 c/ O7 ?- K# authz-db = authz
$ x5 r9 w0 g, F- v' T/ ?( h
- B# a. r$ x9 U5 ~- i$ I" q* Q9 K6 y4 x
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
' V+ j3 w) t& K! m' c5 u* K
/ ^) e5 {9 N, Z# v登录名=密码
" y$ \9 ~, T2 q: C# \  B* J4 g1 d" M* j: t- J( g( P% E
user=123456
, S7 ?  @! ~4 f- R* y! s/ E. S; w: Q% U

7 P! ^/ }+ q' [  r0 P% F$ G, `# }最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)+ q( E0 X0 r6 s
- g$ V) |3 ~  f: C1 x& R3 ~
# * = r
  T& p8 d( h1 ]3 L! P: @* y
7 U; {2 w6 Y9 W. A0 c: t[/]
8 S  Q- r" i5 o% R
. u6 p: I& v. h+ n5 e7 X% Eroot=rw
3 Y$ w% S. I+ J3 ~( C9 @/ e
" F+ @& M- I& V: l$ I2 T: G/ n1 l这是用户的配置就完成了4 `) \$ B5 i7 g7 l! p6 x# K
# Z% h0 F% U3 C
接下来我们就需要开启svn svnserve -d -r /home/svn/blog . K. `* x% V4 g* H
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo5 D9 X4 M& _7 X* t+ b: U% R" X* x$ r

4 v/ l: @) t# W8 }7 l5 _+ p8 o5 T使用此命令开启svn 根据自己设置的目录自行更改
( v8 e" F" T% S/ N" P5 d& Q# o, D; U7 z8 o4 r  C+ q2 O
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
- _$ y& `! K8 S) g! k. o2 A
6 W7 _8 Z4 d2 o
1 t  Y7 v4 B# {8 r! d' Hwin下载svn工具
: b* r- D0 o( y3 _# i) h
& b, N6 Q' y" v( U' ]& @接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了# r/ }- L. ?. K

0 c" b( e4 l4 J) `
; E/ w7 t8 {/ j1 Z+ n' Y* H重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码4 K. d( y% f9 p' d& f1 C% @2 \& V" B
输入你的svn地址 地址请根据自己的设置自行更改
$ ^6 W5 h. I1 y6 o) c2 \2 W: @6 T3 w9 z
' {/ K$ {5 j9 u. P3 E8 S
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了1 F( K+ g" P. |% B$ t3 t3 r

9 f8 D: n1 Q) E5 R& T- A
$ W, \7 Q2 B7 p. n, l(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)$ s. L4 w$ R  O

& a7 Z- E$ y2 J6 {- p& q0 h9 Z; `, \9 p; d4 X

8 K2 D- B% Z4 N; w0 y, \  Q可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存' _: j( `+ h4 U
$ L3 H' K! {" r1 ]2 r; z4 p- ]' f
这时我们保存在版本库的代码就会被同步到网站根目录: r6 x7 M5 |6 w! W& H0 C2 _

" E2 N0 t3 ]& }4 B5 e. N" s$ ~  q
5 F5 R$ J3 m) r) p9 v9 o' l% @
0 y/ y" _9 q  _7 z* a& L2 {

! I/ K9 v6 R+ |! F# @0 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录5 F. M5 e0 R' O! y9 m" F
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
1 w5 y4 n1 b+ B" q9 n
$ B3 C; A3 o  _4 @0 W$ p, r/ W
  1. REPOS="$1"' p2 s) b- ?" g) }# B$ f( C- D
  2. REV="$2"
    + K0 z2 w" b1 l0 d/ }
  3. TXN_NAME="$3"$ c- q, g  q8 m! `! r  H, p
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"6 f8 I0 I" _- C3 K; v# ?7 J
  5. MESSAGE="$(svnlook log $REPOS)": w$ Q* a  b2 x5 r! A
  6. SVN_PATH=/usr/bin/svn
    - @+ E2 J9 s/ D7 Z: L* m2 }! B
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    - |  B6 E. _  B& z9 k8 S9 @
  8. mkdir -p /var/log/svnlog) K  L( J) ~5 L/ F0 m
  9. touch /var/log/svnlog/ssyleo_update.log
    9 D- m" b7 }  d' x, d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    * G$ i8 s& x1 n- Y) {; J$ V
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    ) K8 k9 q4 [# A# [+ [- v
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH4 E2 X+ r+ n0 r# l4 n! Z
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - z# F  o' Y1 L
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
' m3 l, H7 S6 a* r- ~, s* k
& N/ B5 Q. [( z& ~* S3 W. g
  1. #!/bin/sh* |9 v* V! [; R* E$ @) n( }
  2. #设定环境变量,如果没有设定可能会出现update报错8 X, ~1 ?5 U. T0 y- N# s' d! a
  3. export LANG=zh_CN.UTF-8
    3 r3 {% Z6 l# ~4 z
  4. REPOS="$1". M% J8 P$ a; W: C
  5. REV="$2"
    8 }( C# u3 p7 k, \/ o2 g, A
  6. SVN_PATH=/usr/bin/svn
    : Z+ M. U$ B- [- v8 P  Z
  7. WEB_PATH=/web/project! w4 k, Y  i/ z( B6 _* l
  8. LOG_PATH=/tmp/svn_update.log
    ' d! _/ d* d4 B  X
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache1 {4 I4 L3 j' \
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH" T4 o6 \% B/ |* Q2 M4 J
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ; ^* \5 M; l; p+ Q, ~
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    1 h: z4 t; O3 Z# x; Q$ n# o* L
  13. chown -R www:www $WEB_PATH
复制代码

+ x3 d8 ?+ v$ u- d
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
7 l5 u8 c# P- K* v" sexport LAND="zh_CN.UTF-8"
1 @( [9 H0 w/ Z" q, z1 tREPOS="$1"
  I2 F0 ?5 w( k1 q1 {5 T, R3 dREV="$2"
7 H8 \0 r2 b: b7 F( w& g- jsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache! h6 l3 M6 U/ u$ n
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 O3 \* u- y: o  e/ w- \

  1. $ v( ]- k/ `# n# C. `2 u' p
  2. #!/bin/sh9 p7 t$ [  @- A& \
  3. export LAND="zh_CN.UTF-8"
    + z2 s  z1 T7 i% @' k
  4. REPOS="$1"$ w$ @' N0 z* r
  5. REV="$2"& h  a7 l; j4 u
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    , e5 b; O5 Z2 A  h7 f+ @& n
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

% _9 r, o" o7 R9 g6 g
( n$ K6 W, D# P9 ?3 `& ^2 q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-18 23:09 , Processed in 0.121349 second(s), 18 queries .

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