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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介1 E* u, e! e7 b
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)6 `/ F; k) G, d* \! l: x/ x1 d+ U3 Z
1.准备工作
% I7 b( [! v( o8 {一台centos7 服务器 一台 客户端$ t+ p' g$ a2 z
————————————————- W+ Q0 o; k8 W8 G7 E) L
1、验证是否安装了SVN
) w! a+ [) t% L
/ |+ F* D( t" [  v! [* W5 j命令: # rpm -qa subversion
# Y+ L( {/ @& b  L
- `  p7 a& Q$ s& {& R- k如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
2 u" u5 P9 O% k, W$ ?' |8 u0 ^
; J. K( K* h: p1 ^否则,空白6 G3 ]4 L. ^: V

0 H8 x" y5 Q6 N- {/ {* ?: p2、安装SVN的命令
# |4 j. Q- X$ r2 X( ?* k4 F
, o8 ~0 f* Q# o3 ]0 l" M' ^! M# yum -y install subversion
9 }" i( F; E/ ]
/ y4 `! b: y& S# S5 t接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& V+ P7 |9 P) m" E5 G; ?# y4 I+ r创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了$ A( {% J1 @- d

4 r1 U& r3 m3 X然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
+ h: I0 v6 \% k
$ q3 ~& r& k, F( @  T# r, j4 zsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)1 G& o6 b0 O) Q& N1 f+ t- e
, ^, m, E9 J6 t4 o5 A  U: u

% @" n0 S5 y0 [3 D  w首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格: S2 P" D6 J& e

9 J7 w4 `* Q9 `  ]" ?# password-db = passwd0 Y! v: T2 _# c* W- x
0 w" t) y2 n6 h7 F: r& S
# authz-db = authz, \" Q9 u1 w4 `7 \3 s# |" T$ s
6 C( F+ S. k+ j  E

, h+ g! e8 K7 ]然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
3 I/ y4 {% Y/ J- c7 _1 W
9 y% M' Q9 A4 B- d6 i- u1 m登录名=密码) m3 X  T# |& ?3 C8 g
$ h! Y. Q1 e: u) I# U# G. T8 b' L: P
user=123456! N+ O, y- @0 Q% ]" u6 r
3 d2 R/ f0 s8 w
: |7 f( h3 h) _7 ^5 z6 c( o5 u
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)! v) |+ d2 O* j7 h9 i1 S( V$ i
& X# F2 _1 \" ^3 N7 ~
# * = r9 E1 l, }  {: w- ]% ?: e
4 K, z. u/ R! D) T, C% H* a' \% @2 ~
[/]* m0 `: f. s/ F* a6 s
2 Q- ]5 T: S0 P4 J* Q) J
root=rw+ ]0 u5 T% v  `+ S

' F* @  A1 K/ U6 {) p这是用户的配置就完成了
- @- G( }& E/ C$ R5 S; b" [
# d5 O5 I" t# R接下来我们就需要开启svn svnserve -d -r /home/svn/blog
0 Y$ p8 K8 g/ u1 W1 ]+ e4 Y% T8 {" C6 csvnserve -d --listen-prot 端口 -r /data/svn/ssyleo, o. J+ `0 L# b' k5 P7 ^& `" J

8 u! {! Q, t, v" u9 I5 ]" k使用此命令开启svn 根据自己设置的目录自行更改
! `4 m( ]/ p5 @8 |5 t
% D5 s% u# W; U6 Z% B! z% ?使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了+ s# o, \$ u6 b; {1 H) \
) j6 p2 D) ~  @+ h

  S9 z5 B; t, ^8 R* ^win下载svn工具
7 f' C* w  q* [2 m- Q5 j. m6 w& x8 ]& u, O& N5 C# d
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了& E* x+ g2 F8 _/ `5 r! X

/ v4 T8 G0 h: L8 t% h
' _! r& \3 `& H. g重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码  Q+ v  D" y' V# I" V4 B! ]3 \
输入你的svn地址 地址请根据自己的设置自行更改) k- h; j  h% W
# J( p0 T0 ]8 W7 r% B! _) y

# ]. b" h% C) H9 X/ l6 U0 a9 z; }然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
8 K: f% O3 W. b$ C! ]  _/ R# m% |' R, L" b
, x7 ?8 A1 x8 \6 U0 W8 k
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)0 p& \5 O* Z! E; y, Q
5 N2 V& K, \) R# f! @8 B0 Y
" L( G# G: ]" L  k. x3 x

5 {! `4 D. R) P. b' r8 S4 e7 l可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
/ d5 J+ |9 H' ?  s% \5 w& K  S6 E$ A2 {3 K- U; d- y! N# p
这时我们保存在版本库的代码就会被同步到网站根目录" `4 x' R. i  p! q% L; C
; t* @4 S8 ?! x" Q8 V6 U

# d/ [/ ^3 U2 ?; r* }  t% T
% v( D5 U* Z6 k$ C0 Y$ L4 S
4 W+ N' E1 i) C# T7 w, S
" _  M' U/ @$ e  H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录
3 O# _4 }7 e% Z7 x$ ]$ N( Icp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit( v- `& H, Q& \" D2 M
5 B! P) `, F2 _2 f8 z2 v
  1. REPOS="$1"+ Z% X0 o9 o% L6 z1 S  w  f1 o
  2. REV="$2"- ?0 p- g/ l; x' i8 ~. T+ k
  3. TXN_NAME="$3"+ T* a* S0 ~! m
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") d$ }3 r& ?5 M4 H8 o
  5. MESSAGE="$(svnlook log $REPOS)"
    * _1 L- x& F; B4 ^& e2 k
  6. SVN_PATH=/usr/bin/svn
    / [; V, I7 I1 W, I
  7. WEB_PATH=/usr/share/nginx/html/ssyleo( w- R- o+ P& l3 V  B- }9 S4 J; Y
  8. mkdir -p /var/log/svnlog% ]$ S0 }  P% L& M
  9. touch /var/log/svnlog/ssyleo_update.log
    - Y6 p6 p2 Z8 H1 C
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    4 i& F$ b2 q6 u
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH6 c/ A% C; T& d% J3 k# i
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    / O$ _7 \! T' v" E, Y
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
      }$ s0 }6 d( n0 H' O
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
1 Z; A6 I- ?. \$ u

! r9 Z7 z0 x. ~1 `* |6 G5 u
  1. #!/bin/sh
    & o, ?+ I3 c; c5 z9 B4 L) ^
  2. #设定环境变量,如果没有设定可能会出现update报错
    / g7 ]1 V5 B4 r, `
  3. export LANG=zh_CN.UTF-8
    ; t6 }* V# U/ }+ m
  4. REPOS="$1"
    ; G: r& r& U! y: B+ N- n: y
  5. REV="$2"0 }( b" A4 s+ j; P7 `
  6. SVN_PATH=/usr/bin/svn
    $ h# D0 r5 n/ v
  7. WEB_PATH=/web/project: g# n9 `$ c  `; ^0 u* `! Z* G. |
  8. LOG_PATH=/tmp/svn_update.log
    ' c! h: j4 i5 G& `
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ; U+ `; W5 S1 _" \1 R
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH1 Y" }. X$ ^% i" G3 E! x& K' c2 @
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ! b( g1 {/ R. y; S( O
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH2 C  W" F9 S! v' s; m& J
  13. chown -R www:www $WEB_PATH
复制代码
& `+ S2 L/ z) Z: N
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh; K$ f- g6 ]6 ?+ O& _8 ?
export LAND="zh_CN.UTF-8"& @' o: l# ]' Z4 ]
REPOS="$1"
. b& l; r& J4 gREV="$2"
) _! R" I; u' r% xsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
- ~% B3 n- E2 O% ], t1 }svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
1 Z% g* u' y4 T& @$ b8 V

  1. . T: N6 M9 v# j' n- G( y* i; k4 p$ \/ e
  2. #!/bin/sh7 B8 y) P- Y$ U
  3. export LAND="zh_CN.UTF-8"- g6 N! t! a" X
  4. REPOS="$1"
    7 j2 p2 N9 z5 a8 ^
  5. REV="$2"
    4 u% i  }( m, O) g0 u/ i
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    , K8 B6 d; f% a% H
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
  l* i4 j" T; h, p7 @7 w! q& C: z

- Q; E; S8 |! m+ G( D0 Z( v4 ]% j4 b
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-4 04:12 , Processed in 0.139193 second(s), 18 queries .

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