cncml手绘网

标题: centos7 安装svn [打印本页]

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
6 Z4 W5 n2 l2 t. F% Q/ I- W7 oSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
& v& s4 z' n, y1.准备工作7 f. [) k  Q+ {" S* _
一台centos7 服务器 一台 客户端, A; _0 }- q7 ~
————————————————7 P; m, Z, N( e& K
1、验证是否安装了SVN/ e, f; b5 L+ W, h" e" A3 Z) k9 X. W
* p; N0 g; A  r, z
命令: # rpm -qa subversion
. x7 Y. Q" ]. e9 ?1 ?0 [7 |1 o9 F! W( x) r4 `: d4 p
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
1 O" Y/ ?! m+ P( A5 Y, s. U3 u4 M  \! u& \+ u
否则,空白3 x* O) ?4 W. ?0 x7 W" s% F  p

; C6 Z  `% c& K0 Y+ q2、安装SVN的命令
) T0 ]" n7 J  }7 J1 Z6 H  w( b) E/ F
# yum -y install subversion- z6 r( V! g# }- S  `, d4 u

: A& C6 I3 ]" J  \3 S0 a接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
& {2 M. O6 T8 x" y8 \- g创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
& O$ V$ e) H* T9 l, \- p4 I& v9 N2 c: l! l
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置! W7 j' x& I" _) ~

" x& v' X7 A9 X" `5 [3 Rsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思). |$ H6 y' y1 D+ B, _7 h- c  u
7 Q+ _1 |6 J8 D* h( f: \
1 g+ B/ z! o+ T* b& J: ]; _1 l1 o" @
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
8 v7 ?' o& d8 y1 |4 X3 q0 C
0 W% `: d! C% |# password-db = passwd
3 _: I; M% q0 N( R# K" e7 n# j$ d% v
# authz-db = authz! c2 }! N; C5 g6 h

4 |- l) b0 F3 K; h$ G/ Q3 |4 f2 b5 ?; z6 F9 y1 f/ X) }; p
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
6 w' X0 G5 L2 b/ W  M0 O% U$ W* t
8 L9 x5 Z+ k6 u3 ?' ^登录名=密码' X  ?9 N& Q7 h" S$ ^; V$ {
5 i% S- Y: b- @) X
user=123456% u4 E- w5 O! \: S& D

0 D$ T; H  o! \( b
; _# p* U. J( I& b: y最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限). N" W& w3 y* B& a* O

/ g8 h( O% o6 u, n" _; O4 r- Z4 Y9 L* ]# * = r
5 T5 I0 d: {7 x' j- H/ @, X$ z/ ^3 C% Q
[/]6 r5 ?' x# E& i7 ]  |

3 L; E; j+ p! h- c# R, S" \root=rw
# P0 @* {* C) W$ e9 S* \, X0 m- e3 a+ T+ d
这是用户的配置就完成了
: O9 Q9 I% Q* X1 F6 Y# V, D) k5 i" y8 X- X: q
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
# X! @4 [! |# D0 p7 ?svnserve -d --listen-prot 端口 -r /data/svn/ssyleo) P+ W) A1 v: W) b1 w& L

# d5 e! c% K7 I; g/ o8 I& }" `+ F使用此命令开启svn 根据自己设置的目录自行更改+ v# c* ~- S# |- B. {
$ f, u5 a/ W. w+ u  u
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了* ]+ @" X9 \4 @5 C) w

! i, u( T! @! U3 B3 O8 r+ N/ e3 a  W' b: D" b  o+ J, A, E% V2 Z3 k8 S0 o
win下载svn工具' `. q5 f4 |/ B) f

, J' Z( U1 G( C  q接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了6 W* w* H. [5 F2 D9 x
8 w8 ?, k3 I8 \1 J2 A' t. t

1 ~' w1 }( n9 z6 v, A4 N4 l重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 _4 m/ |8 f; J, l( |* J
输入你的svn地址 地址请根据自己的设置自行更改
$ o" E/ \& S! l& v
# `4 B, }  d3 C3 J9 X
' K  _: c# |3 A5 _2 v5 v4 G& n! F然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了* C5 d" I0 r* N4 z% X5 Z9 |  ]
+ R' p0 M- [3 I# p# j# H

5 T- V# a7 G% x1 Z0 O(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
* n- M4 \! G& b4 j
. x0 Q/ J: }3 b9 e4 l' r, y+ n% |0 n9 o# M7 w8 T

% T. i1 ^) n7 o5 u可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存3 O) f; J7 B/ z. k
& X4 S  l. Q' i0 I% Z+ x
这时我们保存在版本库的代码就会被同步到网站根目录
9 f: o  y, M) B$ \0 u# x  K
  O* S2 N5 W* y+ k7 {# d- f$ g$ a/ B7 q" {! @: a

$ O4 X4 @. ~) O. Q' R8 U0 h/ [2 @3 J1 _0 X$ l. L+ w; i
/ F) d4 @7 g1 R

作者: admin    时间: 2021-12-2 19:04
配置同步web目录: }! r% N, @+ W( q. P: I3 l6 w& l3 p( ^
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
! U$ `* q. g; a( S/ V$ V1 R; B6 [! `+ x
  1. REPOS="$1"
    8 c6 A; q' b  h, Y0 Y  u6 A* \# Z, d7 f
  2. REV="$2"
    3 x& a6 s! c; H* Z* c
  3. TXN_NAME="$3"
    ( J% v9 ?& J$ B5 h. f% B8 y1 t+ g) }
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    & E6 `  F9 k- W+ o' ~
  5. MESSAGE="$(svnlook log $REPOS)", |8 r7 n4 k: n0 R! \
  6. SVN_PATH=/usr/bin/svn
    . P9 p  [" a, ~0 o7 F- {. s
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    . G0 m0 c7 r: _2 Z% L
  8. mkdir -p /var/log/svnlog) O4 R3 }9 Q  _+ }; j  a6 T9 G  c4 v
  9. touch /var/log/svnlog/ssyleo_update.log) U* p( L9 }6 \4 d
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    8 W9 i. [$ B. p) y! _6 s4 D
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH: m; W+ G2 R& J" ~
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH' E" y& n) ]; u
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ' r! ?, ^6 |+ y) C
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

; f# ]! l# v# t
* s. v2 f. m6 z2 O; B9 O3 w. w
  1. #!/bin/sh( Q- C' ?/ H! I
  2. #设定环境变量,如果没有设定可能会出现update报错
    - B0 l5 q" F1 x4 B1 X
  3. export LANG=zh_CN.UTF-81 D1 ?1 N% F$ D& V* ~1 i, U
  4. REPOS="$1". |) K7 W: E, k& i- s
  5. REV="$2"
    8 L2 S. k* E/ v5 J: Y: c
  6. SVN_PATH=/usr/bin/svn. T* ?" e2 w( W! o
  7. WEB_PATH=/web/project0 \4 S' K2 a2 b/ @
  8. LOG_PATH=/tmp/svn_update.log
    * v/ q6 F/ s9 }% J! ~4 Q/ W- n
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
      I  E4 y- _: i0 V% {
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH- g* W8 J  w6 b5 [+ C9 C9 H, }! e" n
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    1 {- Q9 w( j5 B* W. e
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    ! b, f8 N; ~0 S% m- r. B, I$ L
  13. chown -R www:www $WEB_PATH
复制代码
* q: u& G" `% v

作者: admin    时间: 2021-12-2 21:57
#!/bin/sh; t* _5 M, s; N, Q/ r* R. M9 c
export LAND="zh_CN.UTF-8"
9 r( l$ k3 H: p$ w% f% V) OREPOS="$1"
3 u6 r& q7 K  o. V& I2 y8 QREV="$2"
* Q! R8 D7 W1 k# d( q, ssvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
4 A4 X1 a3 O5 csvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
. |, D' b5 v% l0 R
  1. + E5 X) t' c2 f. t9 l& w( K
  2. #!/bin/sh
    9 x" }# c7 P) l* f: Q# L
  3. export LAND="zh_CN.UTF-8"
    " M# `) T( c7 ?6 y( D
  4. REPOS="$1"
    % |8 R' ]: k' L8 m1 u' X, ^# s
  5. REV="$2"
    4 X; Q9 m8 S: i; M" B6 H1 O6 b
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache5 i$ b$ x, x  T6 L' l& _: Q+ o
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
4 |% [* ~! a3 ~

# E2 O& f; Y  c( S+ y$ D




欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2