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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
2 l! \/ }1 |, U1 `6 c* U. H- bSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
4 {" F6 T% |$ ~% ^9 N$ l' V1.准备工作
( G& e4 Y! i3 m" r一台centos7 服务器 一台 客户端/ t1 Y; S2 t8 Z* V1 m# ?
————————————————
& ~2 I$ ^, e/ j* `! ~1、验证是否安装了SVN
  t* {( F. s7 I2 a2 M, H! B4 `, M/ T1 Y7 G
命令: # rpm -qa subversion& {; `: F  @0 t. G; R4 T
( N% N% P# {  P, U3 ~+ X6 {5 K1 _! H
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64. f- j6 @8 s+ [( D; t) E

, w  l5 l* `* O# V9 X3 R否则,空白- ^7 Y6 \- L7 J, x( _. E8 I* L; q
# Z$ p2 g2 P5 p) L7 y1 g
2、安装SVN的命令6 t! X9 j* ?1 y. p1 Z9 T' R

2 a* `/ I( B% _+ [# yum -y install subversion
5 T. K$ o6 g) s1 S( I4 k. c# y- X) t+ n8 T* Q5 e
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录) t+ }! a& u3 F5 U4 g) M
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了( \3 ]( K8 q: e) p, o

$ Z5 Q- m4 `0 u; c  y然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置- M4 {4 `. }8 h- m
# [  z, @) v+ \) C
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
6 k' o* @4 s1 n: Q2 W) G- W% x! C$ A5 z
3 Q/ F: R7 C3 `5 \0 \3 b8 {3 Z6 S+ o: b. p! X" ^7 H
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格3 d- A8 F" P& f
6 t& B( V' K2 d- x+ N
# password-db = passwd0 x$ q8 F" B0 E9 v8 _+ v- P

( w& `( w& [3 K, W2 i# ^# authz-db = authz9 F9 V% f( ~) O

# R$ d" Q' @2 R9 u2 b* V0 U1 M. s# }  b& w$ D
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效7 K$ g& Z1 M  M- _4 T+ i1 a

: [6 o. I* B! ^- a* |; \. o登录名=密码
- S3 q4 [3 R% h! N! L* d0 q
* t8 C6 t2 A3 \3 q; }  h( g9 Nuser=123456( y8 k3 P1 v( h; \  O

2 R' v% |! F6 N( K  v; [; V
( f2 f4 w- H, e) j$ S最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
4 J8 F1 B* x' |( x
' G9 @% O. I5 G5 v% f4 L$ }# * = r
! N5 W9 L0 F8 f5 |1 p, A& W# w, h; D3 J
[/]: P5 }+ j3 Z8 Y" ~8 x
( r6 J- R1 ?( O% J% S
root=rw
. U9 k* ]7 D! Q& G& K& S/ Y
" v6 u. y* P& _  C3 L' W/ o  |这是用户的配置就完成了
6 E7 e: }' x' w' L* {$ ^' `) U- E2 B0 X5 S& y6 K5 L
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
0 C( y. J. p  i: {svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
/ {  D* {# G& o2 j+ X  ?9 B( P( `* H+ N3 S3 h3 i
使用此命令开启svn 根据自己设置的目录自行更改
' T8 R1 l) W" e+ n5 e/ W, q# U. I* g
3 E- y# Z* F. J0 t3 V, k使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
( Z) M9 i; Q$ J9 A8 }7 S' r  o: t! t, k- C5 C# D4 K7 u

" S6 [  b/ x' ^# d% T, n* r2 Twin下载svn工具
/ S" c$ Z& H3 n
' `6 i) V+ K: y3 X接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了% y8 q1 [4 ]% s* ~" l
7 l. P" ^% V2 t6 O0 E  U, p. s( u
( z4 ~) n, ?" O( M- Q& @, y! G# ]
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码. F! d+ @( k+ z: y) \: l
输入你的svn地址 地址请根据自己的设置自行更改- W) \6 p! _& t5 e- @

4 D+ e2 p% Z' L* S9 ^% k8 g5 o6 ]! w* V7 `3 W7 G* ~8 A
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
4 ^: B$ Q5 ]/ N* }9 `, }' h* w/ Y0 Z' R# b; A2 k
* {# l) e, C6 J/ q+ m9 q
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)4 x9 B$ |6 N3 k
1 k( X2 V. {8 z2 ~5 ^

4 ^" \) _7 i: ~9 \3 {* O0 d  t$ L% r. H5 c4 ^- i  k) l
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存2 A3 I7 C: U9 S" ^2 z4 J5 B7 q9 V
' I" C' G+ J0 P/ R
这时我们保存在版本库的代码就会被同步到网站根目录
: M2 E. x/ u2 X7 B1 E1 j  R9 o
. D) X# ]* X/ m# d2 Y% `$ M
# [8 p& v5 w* W; c- m+ n( \" _# U
: p4 w1 t# m  L* E6 T/ L! ^* D0 ^' a
7 w! `* N/ ~; `- f0 m1 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
5 W9 A5 G: N; b6 k0 _2 M* H# Dcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
& @. F! t; |7 q$ N  T
9 i/ e  \) U5 F. Y# a+ {
  1. REPOS="$1"
    ; v5 x0 f: M" K* H' y
  2. REV="$2"+ [) ^  \4 Z5 l# I- s7 J
  3. TXN_NAME="$3": h; K" Y2 J+ A6 b
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    : V% b. f% g" ~4 T6 ~% q; @
  5. MESSAGE="$(svnlook log $REPOS)"" U0 R# l/ b7 M) x
  6. SVN_PATH=/usr/bin/svn
    ( U; E. R) \3 J3 K2 p
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    2 u+ ?  Z* g: `0 T# u. z
  8. mkdir -p /var/log/svnlog
    # f& @) q2 l1 n1 t, ?. ?/ d
  9. touch /var/log/svnlog/ssyleo_update.log
    # g$ u, |2 }" E' D' W2 g' O
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    + E1 I5 ?* U! j& n) I$ m. f7 g
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! H/ Q9 ^" B& k
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH5 P. P1 v( [# J( d6 r" }# N9 E
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH; n* Y% M, `. w# K6 C: q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 `, ?! S, w# g6 O0 b' j9 ?  s0 i1 Z( b# g' ~
  1. #!/bin/sh/ [' O" H! G$ E# C8 V2 m! Z1 o
  2. #设定环境变量,如果没有设定可能会出现update报错) k0 g: u- f+ c/ D* W
  3. export LANG=zh_CN.UTF-8
    # W1 a0 t$ x/ ]8 J% J, k! z0 W7 \
  4. REPOS="$1"4 K: r. ^7 Z& _& ]  @
  5. REV="$2"
    ) y( b$ t# a. x% g
  6. SVN_PATH=/usr/bin/svn
      T' w, }+ f; C, D9 Y
  7. WEB_PATH=/web/project
    # U! h! A) h# k5 r5 m* Q) N4 w: E
  8. LOG_PATH=/tmp/svn_update.log
    $ P% j5 j- ^3 J$ C8 ?) L$ P
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache2 i$ e! U) R* a' ]" E% Y6 _! |
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH' q* o* n6 B1 M5 e, d
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH1 Y& p7 r. L4 O- m
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH- p0 ~6 {/ {7 O! W7 R" A  J: |
  13. chown -R www:www $WEB_PATH
复制代码
6 L; R. U0 u/ D
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
8 v, a" {3 e2 T- w' pexport LAND="zh_CN.UTF-8"0 v- A+ s( V, A+ @' O$ V" \, k
REPOS="$1"
5 N  w$ c( |4 i2 u8 R8 |REV="$2"
1 ]9 f3 D- B+ J3 f3 h0 psvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache4 o1 D3 ]" @" a+ I7 ^) E2 M% d  J
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) H$ B% y* L- H4 ^" z

  1. 4 z$ r2 @( ]: f" S5 ?' g
  2. #!/bin/sh
    7 Z5 O  q5 k7 C1 u$ Z
  3. export LAND="zh_CN.UTF-8"
    * `  y) C7 Y* ~! C3 _7 Z# Q8 q. S3 G5 f6 A
  4. REPOS="$1"
    - N! @1 m8 R) K3 H6 F
  5. REV="$2"
    8 c* P5 F2 s* z' _
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( o$ O$ R5 h! z2 V) f/ C3 f
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

0 P" j7 L4 C! G* p. [0 V% v  R" J; D0 i' v
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:41 , Processed in 0.133165 second(s), 21 queries .

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