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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
* ?7 M* e4 H1 G2 p% g& R  n7 F( eSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
' @3 z+ M: a' @1.准备工作; y- J4 l* m6 ^4 X+ L3 s
一台centos7 服务器 一台 客户端# `" [4 r* W: W0 a% K+ w
————————————————( H2 V& l* B7 e  [. i
1、验证是否安装了SVN
* I: V! {' J# \1 J7 B
* j8 R+ v4 Z$ T命令: # rpm -qa subversion
5 h- }0 v  \: @: T: b, O3 X5 K- K! }8 ]& m* M  v4 ^
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
& L$ |2 G3 j' f. t8 X! J0 C
6 u2 l% @& @3 |/ K* Z* v否则,空白8 _9 c/ }" D6 i4 |

  g5 p) N2 A  L# w2、安装SVN的命令# _/ |1 o4 `, V/ @* o' g6 k& v( f

- X- l( k9 \% k/ P" ^3 b. X) u. H# yum -y install subversion/ n7 c% W5 c1 C5 L+ _
/ x- P1 `8 B2 T( b9 C/ b
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录, }# J( H) X$ l  f
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了2 a- K9 x/ r5 _: q% C2 D
( V. h! b, A! Z- h
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置* V& u7 u8 _! c' U
% S/ ]' r% C9 W* G! U
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
- L/ M, r! _4 G$ D8 @+ z9 g' v+ ~8 S8 b" Q+ l* R

8 f' ~) k! E: ^/ l6 k1 P( `, K8 `, @首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
  B# A5 M9 B0 A7 i
: a' `* y$ y) e) }/ u1 }4 B# password-db = passwd' f+ N4 \; {1 S' H

: K! v4 H3 D  j5 |& r# authz-db = authz0 L7 u, U& `+ R$ ?' c8 Z
' Q- m) L8 X: I: S3 ]$ f, f
( |" M; l& }2 z; T6 L3 M! _
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
$ M+ C2 z( t( G+ r0 s
$ I5 H2 N: W& z+ v登录名=密码/ c8 H7 s3 Y) x; x
& B" ]) d& j% R+ c" P
user=123456
' J& y/ O" B7 b1 y- c4 e3 ?/ A; f/ j0 x- }6 U7 n  Y* D0 E

- m3 ]- x0 ~; H! T! J" L最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)# O7 _; S9 Y8 }

# k5 z1 d0 C5 B! x# * = r
+ S# V, B& W, d' T( q2 ?$ A
, j  v0 k9 V  n# N[/]
) n) j3 ?& B' K4 \7 Q" i# y) Q; c$ O1 s9 o  B% h
root=rw
: ^" k$ E" K9 z
& r6 ~' C& b5 P  n. b0 `这是用户的配置就完成了* O7 x8 y$ }, u3 d. V0 k3 `

9 w* _  \! ?& b! V$ ~& ~& o# i& f接下来我们就需要开启svn svnserve -d -r /home/svn/blog ! U) w8 h- u8 j8 X
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
  W) {9 y$ T; W2 b& m- H0 X4 n7 E  U. v
使用此命令开启svn 根据自己设置的目录自行更改$ n$ D' I/ A8 ]- S

* V+ b5 Z3 q: a1 i1 }使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了# |) \4 ?$ F& d/ K; x5 Y

  Y" Q2 ^. y) L. t3 g: I' _3 S% p6 O
win下载svn工具
' P$ K8 m- S: o% F0 m# L. h4 Y1 V/ e: c, b- |  L
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
5 H  n0 N7 u& g! F) V* k/ f1 t% [3 t* X

: {7 ]% t# s1 S% d3 T( w0 k/ N重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码/ }$ {# W4 d" E3 p& G
输入你的svn地址 地址请根据自己的设置自行更改3 C+ F) q% ^  U% s7 x" |* S
! A  q. l) I2 @: ?: N! G
/ L6 e$ @9 e& L2 O
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
. _) p$ T- a0 N2 X9 y8 U8 c. _/ y9 ^% r/ s5 [" ^( T$ y( o4 D

0 V; m9 F. R  a" [3 {(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
. E% V6 m# t7 j/ U" U( T. w$ f" O7 l
& z' [; z8 N" ?' q8 ]5 u: _5 ^  h: C+ O! G
* k: R5 O& K7 Q4 @. {6 e, s9 \+ Y* ?
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存, }$ t1 u% Q% B0 q0 v

) ?7 {% ^# Q/ i这时我们保存在版本库的代码就会被同步到网站根目录
* e9 Y8 c  E9 h: V
6 p- a; g" ]& U% P; @$ ^9 f3 e. @! v, x* [2 I2 B7 K% y% W

/ h& ?- n. C6 v7 T3 e4 I; l3 f+ e* ]; {
! J- i2 R& |& U( J& A3 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录" L' ]0 @/ k7 I, G) U/ S
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
) v1 m% k4 P  J4 v$ }2 i7 ^: w4 E! C. Y" a& u3 B
  1. REPOS="$1"
    + Y: p" Y" }- ?9 c" ^& A& X+ m
  2. REV="$2"
    ) s5 r( g$ G& J* \; ?0 j7 b- I. D
  3. TXN_NAME="$3"
    ! C# U; j% M' |1 U8 n- {
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
      s5 c1 b/ {) c! U/ s
  5. MESSAGE="$(svnlook log $REPOS)"
    8 f9 Y& i! i7 O  w4 w6 _% L
  6. SVN_PATH=/usr/bin/svn
    3 \& q$ I  P+ R1 G; u6 }
  7. WEB_PATH=/usr/share/nginx/html/ssyleo5 u  N/ u: g& @% |+ n; L  `7 c+ N
  8. mkdir -p /var/log/svnlog! J/ P: g$ P. R8 w
  9. touch /var/log/svnlog/ssyleo_update.log% \  A; C) q, Z& {1 c- H9 c
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log9 ?) A: R. `) u+ q
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    - [0 h' T+ h4 E* m. }" D9 j! m
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 \1 L: x, X# E6 s; ^7 W$ C, b
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH2 v! F4 _9 U: a, w. m" c' z: b8 J
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
& s# \2 x' W2 Z% @* n
% j$ }7 N( ]/ m( o8 \
  1. #!/bin/sh0 X1 s  L. f' r
  2. #设定环境变量,如果没有设定可能会出现update报错3 P4 ]6 a* N( V
  3. export LANG=zh_CN.UTF-8
    8 e+ ?. k: @5 g6 _& h
  4. REPOS="$1"
    5 t$ z4 r0 w3 d
  5. REV="$2"
    3 \* W6 e! u4 h6 }. j7 C. b* F2 Q
  6. SVN_PATH=/usr/bin/svn2 _: b2 _- D  C3 B: w
  7. WEB_PATH=/web/project
    / m# B5 k4 W+ U  L
  8. LOG_PATH=/tmp/svn_update.log
    ( w9 Q- b+ u5 r- Y; i' X4 ?
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache$ Q1 U' T2 J4 L, l
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH: [: \. B. R& I; w5 ]& h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    % p2 X6 F. l+ c6 z
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    * e$ B/ p) D, d$ t0 Q
  13. chown -R www:www $WEB_PATH
复制代码

/ b- `4 w" A" O
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh2 d" \* l1 N8 R% F+ n
export LAND="zh_CN.UTF-8"
0 `0 n  F  g' b$ J3 n3 CREPOS="$1"
7 |9 Y( q. ]( D) ~2 ?REV="$2"
  e+ c0 M/ S4 q5 x' Bsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache9 E+ v  s1 C$ y" D
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache: I0 S) A( M; {; w; X
  1. ' |$ F' b, ~2 D9 t" O
  2. #!/bin/sh" R; a. y5 |5 y1 s# Z
  3. export LAND="zh_CN.UTF-8"- M- K. |1 Y1 m$ J& x7 S! U7 Q
  4. REPOS="$1"
    ; b. Z! I2 Z. c3 }' J" C
  5. REV="$2"  l, p" y" L$ Q
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    : R: @4 s) m/ T& ]: E) M! J8 q
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
+ J2 ~$ J, Q7 s5 A9 X! h& e
1 @; T8 Q& z: ~1 w) u; d/ v
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-20 12:59 , Processed in 0.120406 second(s), 18 queries .

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