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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介, X% k% }  {+ r" q+ Y2 ~
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)- g$ u( D: d0 Q3 w  i. l
1.准备工作
4 n1 _! H8 c1 [* `/ Y4 A一台centos7 服务器 一台 客户端; ^. L. g. d& U0 Q8 L" E0 T$ ]3 c
————————————————
4 v. H0 |/ c  Q( o4 D/ q, v3 J1、验证是否安装了SVN' `* l1 o# T4 m  d

# O% D+ L7 z* N7 o命令: # rpm -qa subversion
6 L. G4 U; ?& H' V9 t" F3 K1 C8 X/ y" a( {
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
, O! J" @/ p7 u# e1 q% W6 b9 P8 L( f0 L0 y; `4 [
否则,空白# e# A: E# m* L6 U/ L  p8 Q- Q

9 n% t4 Y4 _# `2、安装SVN的命令5 e6 M/ G8 o; o, G0 N

3 t: T& d6 ~" P" a4 |# yum -y install subversion) T8 C: ~. {. o
  t# ^6 r# c' m* O
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
0 U% @* Y: T# k& F创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了  D; u1 h2 Q) Y. _1 B

2 }! ^% D  K: ?/ b* Q! S& C然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
) E; Q  O, T% D6 I( Z
$ G5 R. b" X! ?# R( Ysvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
* b: |! v& P% C! H7 m1 k
8 p+ Z/ m9 @$ e0 Q6 ^! O' Y' ~1 C+ H# S; E/ \
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
2 ?% q( O7 H1 w% q
6 a9 a2 {. ~: J. A- S# password-db = passwd. [* H2 W4 ]* h* ~' x3 S; t* @- j- T

2 U" j: S3 V% F) V* B# authz-db = authz
' U; a: `7 B8 L& S. V4 r
* w+ u* s1 L& J- z, X& a$ b* z6 E3 ^9 \
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效: d* T: @# o7 n" Z4 X1 u+ r- o; ]
6 L' L; `) \% `0 Q
登录名=密码
, Z3 D6 ~2 A2 o, r5 ^; p' ?7 \, v. F+ v9 z
user=123456
2 C' n3 F7 X* Y5 j* a; N. ^! C+ F* c
' |. _- g# v8 F$ _
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
7 g) h) F) ]% ~1 Y. ^" O( n; s$ _+ d% w. W5 O; t7 {0 U) }
# * = r
1 j1 g3 b4 s! i7 H2 F/ D# m4 e6 @' P6 l8 h" V- d$ w8 |" U$ B% A1 H( _
[/]2 ?3 g5 {6 i% m0 P' U$ C! S
, \# s+ p. T1 E; \' F
root=rw) }" p3 p4 V+ T6 B% e) \

6 p$ u0 Q' K% X这是用户的配置就完成了
/ E. P5 e: T5 {7 F# h) ?& t9 w% o( M' ^6 G0 z2 o, A
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
3 b1 z+ B$ a# S3 a8 ~- {# Asvnserve -d --listen-prot 端口 -r /data/svn/ssyleo0 t* |4 E2 }. I$ Y8 ~

) \6 N2 {( i2 I; r: A使用此命令开启svn 根据自己设置的目录自行更改
7 b* u& W/ |- Z  B- U4 R* Z* e% ^2 y! q: F
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
- Z7 D0 Y' p) ]! Q4 i- I& `
: \, _. T. s* B( ~. R5 j, _- f( B8 j' [' l2 |4 E; j
win下载svn工具
& @( b1 i& B6 b
8 u/ \8 ]2 {/ T/ g: N/ H3 Y$ V  \接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
- `. A& v5 d: r- o2 V& j. @7 w" W8 y) s
- t( a) t4 a- ?2 r' {' I. I
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码" G) A% {0 x& a# r
输入你的svn地址 地址请根据自己的设置自行更改
3 G+ C& a" j- p) N5 H/ B) E+ s$ ]# j

3 q8 N$ C8 C7 s) Y% V( e4 h1 W然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
6 Z5 J/ q4 k+ d- |- U' |; L# Y! p, k5 y6 l3 D+ F7 R9 Y

" |0 M& ]3 N2 \, H% {' f! e' Y(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
! L: C; U. d  b0 G; X
& x1 F5 R2 Z' w6 [0 k& S" y* ~  p

' X1 J/ C! k0 S( ~) L' s; g2 B0 T4 q/ q可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
! ~- p* r( A" \) ^  ~" e/ q
/ P* o$ a" N( K5 j这时我们保存在版本库的代码就会被同步到网站根目录6 v. l1 f8 u- `/ m1 x8 P1 o

# z7 B+ b# K& J1 K6 ?; K& b1 ~

+ U2 N& U4 [2 ^, E- ?) e
4 _6 V4 a4 M% y1 I; h
+ m6 x! {; V/ b# \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录4 O1 F5 \0 [0 f6 e& D; p+ P
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit8 }7 h9 I4 j! N0 |  z, G! Z/ |  p
7 W5 e: J7 ]* ^0 H8 i* S* }
  1. REPOS="$1"
    0 z* j( I2 U( t
  2. REV="$2"
    3 a! y/ E8 A4 A1 k) `" N8 c+ y$ ?
  3. TXN_NAME="$3"
    3 J# T- O) c' t: s
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
      C5 x( j1 e1 C  S& Y5 {0 N3 P
  5. MESSAGE="$(svnlook log $REPOS)", d- M0 y' l0 }8 p
  6. SVN_PATH=/usr/bin/svn/ _. H6 R' A8 e3 X' r- N
  7. WEB_PATH=/usr/share/nginx/html/ssyleo% Y  j' r+ d7 ?2 m( K4 p3 p) {
  8. mkdir -p /var/log/svnlog
    / g7 r8 `, A- @* B3 c0 Y. Z# ?
  9. touch /var/log/svnlog/ssyleo_update.log! [: \; ^' I2 ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log/ d9 P% M+ q; {% h
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH  o4 i2 c' _7 e6 {
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH& K' u! q; P. O) b
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    & r' E# I9 [' |' c# O& o3 x: x
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

  X8 g3 f8 V9 T# k( J& m0 |8 ~( m( J4 X8 U- x6 c* N1 O( `
  1. #!/bin/sh
    9 S( {" S$ h; R4 l6 q
  2. #设定环境变量,如果没有设定可能会出现update报错
    . }; f' ~$ u! D4 P# s
  3. export LANG=zh_CN.UTF-8
    0 \* Y# n7 U# e) t" y2 L) x6 ~
  4. REPOS="$1"3 I% P: {1 c! w: }" c7 I
  5. REV="$2"8 n, s$ I  o' T" d/ X
  6. SVN_PATH=/usr/bin/svn1 N/ Y$ P/ D0 v  z9 O
  7. WEB_PATH=/web/project
    $ J( g. m7 `( B0 M" X
  8. LOG_PATH=/tmp/svn_update.log
    & @1 E# l: d( w9 [/ f- o1 d4 {
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache( c" e- k+ ]- q
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    : I* [9 Z5 ~) R6 W4 K
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    / t8 U0 S: l- c" \& H) Q. i9 q9 a5 ]
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    " g# B/ P7 T1 P$ B5 l& o3 \1 Q
  13. chown -R www:www $WEB_PATH
复制代码

- Z! {: A9 F7 u
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
  F( d7 y& ~9 I7 n1 lexport LAND="zh_CN.UTF-8"
3 v( p0 k; o6 c( n  a, yREPOS="$1"1 g+ `: A; [. Q
REV="$2"
, Z# K+ g0 e; B7 I) c+ Z/ \5 s+ Hsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache1 w1 y6 |# X0 C  ]
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% s  m. o* i/ Q+ e- ]$ U! N* {
  1. 6 f3 Y" Z- h4 j" Q: G; D6 I1 r
  2. #!/bin/sh3 P5 t; e9 k/ W4 t% }/ h
  3. export LAND="zh_CN.UTF-8"" W2 w4 n2 w  t. ~* Y9 q/ x0 L
  4. REPOS="$1"( B; K+ L2 _* o" D" f6 K/ {
  5. REV="$2"* X. a+ n" N. L8 D' U
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ' s' Z  H: `- D( S. r
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
$ r. `: A: B# t9 F- m) _" m
0 o7 k7 R+ E; ~8 w
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 14:52 , Processed in 0.110208 second(s), 18 queries .

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