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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介, X% U* z# k9 X& _7 |3 F
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)2 t% E% Q' _* x" A9 ]
1.准备工作
7 W, H. {4 y6 g& w* S一台centos7 服务器 一台 客户端
" h, K5 a& {& k. H( [$ B————————————————
3 E0 c+ q! O7 N) C( A! @( s( [1、验证是否安装了SVN
& O8 y3 X8 H5 |& d$ P  V0 @; {4 o, B
命令: # rpm -qa subversion
4 Y/ y* F+ M. Z$ O; j+ [0 U+ I/ w/ d2 S6 ^5 ?" I6 V! }
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
( ]3 L; W! G( D5 _0 K1 X. N& Z+ s5 g9 L6 u
否则,空白$ b6 G" o9 _/ q. W+ |0 w
: `2 a8 T- L7 }% Y
2、安装SVN的命令
, `, \; n/ u3 j, S" ~  ?
6 C5 q1 ]8 M  t7 n# yum -y install subversion2 x* S3 Z! M) Z3 d  V" p; ]3 p
! X- W3 R+ B& h( M0 O" c
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录8 K' t( D1 V5 u% r# e; K: v
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了, q- i; k' M% \3 I, t7 ^, s" Y
# O) ~! l. u1 j. r$ e+ t
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
* @( R2 _- `, O
6 h$ J6 c  @6 X- Y6 D& [: Asvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)7 a. X/ i) i  k2 s; o. X( d
5 A7 n2 T3 W; w* ^  X' {

0 u( v% s2 P8 a$ C1 z首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格5 F8 k# A8 w* o: E; r* e
! d$ L0 G) B  n+ O7 ^+ J
# password-db = passwd9 U& [6 z  J; Q( g: P
! N) q' c, }7 k5 y7 h, x5 D# `. }
# authz-db = authz, }" d3 v8 {; o3 W7 [+ L6 z
7 E3 g! E  ]; S# c+ z# e4 k

' r* x" P# X- P1 s然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效9 b1 G: V7 n. Z; e7 L7 B
( N5 T, U# [( Z' O
登录名=密码
+ N- E+ ^. Z3 _$ [: p
) M/ O, r- {; s  Auser=123456
6 E& W2 C4 _5 R5 T- @$ i7 y% [
, ~. b' T0 K' [8 w; ~/ A
( A$ i8 N6 U  E: _8 X# _最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
9 ~3 \- d5 h; t$ G2 F$ @4 y9 g4 E7 [; L- _% B" y3 V' ?
# * = r
2 l& t' g. p; J- r. R  r8 N; ]
) o2 c1 P+ a/ Z9 d( Y[/]
& T1 K1 C7 w0 e4 R- ]! K" @' D! ?0 C# A% L+ l. H! ]  D9 P) I( E
root=rw" N8 ~+ K& X2 F! W$ p/ C# h
' A1 ?. }2 N3 a. i' l+ e
这是用户的配置就完成了: C: a( ~) {5 ^. S% v4 ]
0 Z- @# Y" Z' q  }* Z& N1 d
接下来我们就需要开启svn svnserve -d -r /home/svn/blog   s1 R2 J( ~0 _3 Z, e3 O# E
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
) ~7 k% @9 N& H$ ~( S' w7 r+ s" r' g- h7 d; l4 R, n6 j
使用此命令开启svn 根据自己设置的目录自行更改; P9 j7 ^8 i- n" M8 `% h. {

! H( h& C5 d; |使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
. g# f. t4 n" Y* B; n, j
4 ?3 L* _- i2 P4 R
, E" e# c& y2 a5 W) {+ I& iwin下载svn工具
8 M2 H# p# {5 j& |9 S( F' d( |6 j6 D& r: C6 J2 @- Y0 M: y
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了* d( N5 {- ?5 h. \

* H8 z0 N4 J. p. d) ^5 f
# [9 Y, @) S1 _5 ^3 _" C8 W重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码6 Y5 {' K. T' S# U( j8 u
输入你的svn地址 地址请根据自己的设置自行更改* `& K% g  f, m
" ]' X7 m: Z3 X3 z

) j# X6 z' B( j6 N4 K# u然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了$ f* p! R0 o5 }; b" Q' E% y8 y, H- s

7 h: r" c$ b. d% u6 ^! D
5 P9 J+ f) b% \# j( U" T) f# I(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
- H$ k3 o5 A; e( @3 I( D
  t) B: M( Q9 C/ |
' F, ]3 g% r1 r% G0 w' t# I/ v
; A) m# X9 ~: e+ s  x可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
+ z5 {: F0 J/ P  M1 S3 m) _) p7 z4 M& l( G; j, v; d
这时我们保存在版本库的代码就会被同步到网站根目录
6 _* @0 A1 y# ^5 _
/ X$ B$ N$ F1 H, k/ ^2 E1 v) |) g2 A
2 |, o5 {, w2 W/ U+ W* @
3 ~9 m+ v8 w5 Y' x  k( r. t  g6 t
- W& a$ ~3 `  |" p4 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录% W4 j; H. c0 v7 a" F* o
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit; z. M4 {4 s0 H/ ?
' J+ M2 F5 b6 ?# ^- d
  1. REPOS="$1"
    9 \- G1 E8 I' s7 c; e- f# _* t
  2. REV="$2"
    2 e; s; L! Z& v
  3. TXN_NAME="$3"1 M0 x& ~8 z2 P- Z; {, a
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    / d* D' T; f/ r' r2 u5 S2 g
  5. MESSAGE="$(svnlook log $REPOS)"# m! g. t, F0 z( Y  a' R
  6. SVN_PATH=/usr/bin/svn
    3 h5 I# W; _, v' M
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    7 u0 P$ E5 s1 d. r
  8. mkdir -p /var/log/svnlog
    $ Q- q4 A! D: l4 e* z+ u
  9. touch /var/log/svnlog/ssyleo_update.log1 K+ I$ f1 x% t3 S- n0 S
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ( N! |& Q5 J5 E- C, z0 _
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    : h5 Q0 n$ m9 h5 a
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    % z2 A* w6 B8 b7 U; @; {7 _+ V; [* ?+ R
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    * v4 O* o: g' ?7 w6 N9 I
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

% g2 e6 I* K  r% v0 R$ l! n- q7 Y8 ~0 J9 w( x" c
  1. #!/bin/sh% U7 q9 F! Y' R( g& z; C/ {. u
  2. #设定环境变量,如果没有设定可能会出现update报错" d9 `( s9 t; e6 y5 h. O
  3. export LANG=zh_CN.UTF-8
    & P$ B; W0 ], t( e& B
  4. REPOS="$1"5 e- ~5 I# B; ?0 [; i
  5. REV="$2"* V7 h( q2 ]) x  z& D* F- `! y6 L
  6. SVN_PATH=/usr/bin/svn
    ( R1 I# B* F7 a0 b+ r2 l& o9 ^
  7. WEB_PATH=/web/project
    # a7 J. U" `, i* \9 @# m, |
  8. LOG_PATH=/tmp/svn_update.log
      R' _% l/ T" `  c6 ^3 Y- `
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    8 E+ y5 B1 W4 v: u# }3 _
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH( ]. D1 s/ Q3 O, k
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH8 F  s# M( V) M9 p8 R# M* \' X
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% V8 C$ @) a+ n1 k: B
  13. chown -R www:www $WEB_PATH
复制代码
/ v" i. u+ K+ b& t
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
) x+ l7 h& ~/ W' }export LAND="zh_CN.UTF-8"  n4 s& g$ g4 I, q( u. A) G) A# c
REPOS="$1": P; J$ l' G' @8 M
REV="$2"
  X# u! @; {# C8 R6 S& isvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache1 _' o& d, @5 B- u8 j( F
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache0 O' G, c. ]7 F- F

  1. ; a/ j3 V, a- x
  2. #!/bin/sh" i. y$ D. M' z% ]2 B. F
  3. export LAND="zh_CN.UTF-8"
    / J; |$ q7 V* S% C8 r/ }, k
  4. REPOS="$1"* o* n( U  h: j: N! t
  5. REV="$2"* }* I* c8 M/ y- N
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 b3 t+ h+ c, V" g$ h  o
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

: m, R3 g' C4 {8 S4 E; J) O6 O9 T
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-26 19:37 , Processed in 0.127025 second(s), 19 queries .

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