cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
& ?( f: h% D  E" E8 LSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
4 Z7 ]0 F/ p3 M0 m* c1 {! `1.准备工作
7 o5 N2 g, i6 P6 M# E1 c3 M一台centos7 服务器 一台 客户端7 w6 L1 G  Z0 C$ \& n, d
————————————————
! w9 }' ?" N; B1 Z& i1、验证是否安装了SVN. @& b- Y, o: D' C" j: h- a

, x1 e6 R" w2 u. Q命令: # rpm -qa subversion
5 l8 P& q9 f9 ~& I* _+ _$ A  s& k! N
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_643 s1 o3 h4 ~$ i+ t4 K2 I

% q2 ^7 }; b! z2 I4 P# X! h否则,空白1 K+ a! ?0 W1 p+ m& [* F; Z
7 s' V% I5 `; q: D+ q" T9 @
2、安装SVN的命令% o# }/ ^" M% i7 r0 p+ h. Q

1 w1 {5 R2 k* j4 U9 l$ g) s6 I# yum -y install subversion
& r* z$ B$ p* j5 w% I7 j# x% e* e: F) Z  u& m% i1 B
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录6 ?7 I% F/ ^: S+ a( O6 D. P
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
5 ~, h- Y5 J( y( S
8 ~4 T+ ~6 b( B然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置: @$ x8 j; ~0 S; G
; ]8 [1 _% I( t9 R& J0 |% o
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
* X; ~0 [  X# K7 p
+ P* `$ A/ }) ]! s$ i0 n
; V+ Z8 \5 p8 j' x3 C/ j; Y首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
' [$ n' X! q4 a. v2 {0 \0 X( f( O+ O. e0 T$ f! t8 v
# password-db = passwd+ N( \, {9 b0 `* A  K

% ]* H$ u, B8 j& _0 d" M# authz-db = authz* M- w: s( H. ?, C  U0 d& n2 N; O

7 B0 f. M0 i( E# Y
  @5 u1 N, @% U' C% g  Q然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效: P4 s* H5 F6 z+ S$ N

! H: N+ H7 e, o7 a# [# ]! M* L- v登录名=密码. j# H/ [9 I8 ~4 N+ l* X, r

6 M) z* j) V& E1 c9 r* ~user=123456
4 e% |! b+ ?$ v( B! [9 [  t) ?8 N9 V& ^# P# O* e$ ?; \

6 t* U" n2 q& U7 T; H最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)0 a* J/ Y2 m  l7 n6 z

5 W$ w. l: ]* v4 h8 o( L# * = r4 P. K% F  J7 L% E' b9 A0 ?& e+ N! j
4 \* h) I. O% h6 @- b/ `2 y
[/]
2 Q$ G3 p! E; K1 l; e' M1 y# h. j- y/ p- a# X( K4 g' w0 y
root=rw
) [' K4 |: M5 A* K& ^2 s$ P* F5 ^4 g: ^9 X
这是用户的配置就完成了0 P' v: m. {8 _8 b3 G& A
/ _" x2 w  _5 L5 _6 H5 e3 o# t9 h9 V
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
! }1 X# F+ v4 x" U& A+ rsvnserve -d --listen-prot 端口 -r /data/svn/ssyleo. a- b: }0 F. X2 }2 B  `% y* _, T

( O: w" d$ t* a5 M: y使用此命令开启svn 根据自己设置的目录自行更改
1 g: w; i; D7 A9 ^% ?9 p' J
# |4 k1 W% t0 H8 S/ h% `使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了3 m- b  y$ }4 ^0 G' m9 l
# p1 p$ d* n7 Y/ e

+ |) T. |. B% {/ @: Swin下载svn工具; R5 |: g$ K3 W9 l: t

9 ]6 S6 `2 U1 N/ |+ ]# b7 p, P接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了& w8 n+ ]0 H3 C* i2 T$ t7 Y6 w
7 ^" ^7 t1 D7 j
+ Y/ r$ A  u- u. C3 Z& k' s
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
. d- G: V& W: t& s8 W, m: H# L输入你的svn地址 地址请根据自己的设置自行更改8 i; L6 i9 ^5 \
- N3 d( v* I: n: q
5 z; @$ G: C- h2 @+ {5 |8 q
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
) Y4 X' Q! y' R, K7 ]  y* w9 A. r

& c$ `% y, R. ]$ Q6 r(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)! w3 a' u! K8 C5 Q: \& ^9 N( K3 ?' E

$ ]6 V0 h% O/ x0 c& k
- J- w  N8 r* e/ ]' ^0 h  O9 ^& V5 D
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; s# ~# t; S% D( ~, \$ W
- t9 p$ o* _$ O: `  D1 ^' P; J
这时我们保存在版本库的代码就会被同步到网站根目录% l, [1 ~$ v  P( \, Z8 P& W
7 j8 k6 J( y% x- H
9 d5 I+ ]1 }8 T5 j8 N( F* [; m
5 s+ J( [, n2 J! f7 w, }  T

. E) _  a' k1 g$ Y' G0 t
3 y/ A3 j3 K4 b  r' X' ~2 H
作者: admin    时间: 2021-12-2 19:04
配置同步web目录
+ H1 F4 a3 W+ Q% `; s, wcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
/ {* G; N3 G& j+ F% M, H4 D0 l+ ~4 O! i. v* [6 m8 U7 K8 D' g
  1. REPOS="$1"
    / j3 U, {% t  G1 a: g" k' @
  2. REV="$2"
    ; c; v7 F* _- |8 D1 k( U
  3. TXN_NAME="$3"
    0 B* w! r% L* I
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") _, W* \- ^/ {
  5. MESSAGE="$(svnlook log $REPOS)"
    9 ~! n0 x* L2 l/ I, M* N' w
  6. SVN_PATH=/usr/bin/svn
    . R$ V5 s' ^$ H8 u6 ~3 h
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
      c* L1 F% _& x( O, P
  8. mkdir -p /var/log/svnlog
    ; p# Y. I) R2 p  d$ A* t* t
  9. touch /var/log/svnlog/ssyleo_update.log
    ' K9 ?: A: x0 V2 `3 V& ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log, Z2 {8 [" z' w4 e% U1 K
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    , s8 g. y  k6 a& ^
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH% e- w  U6 m+ [" D3 d5 X
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH2 w  x% M( t4 \  e
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

: d5 T# g- a8 A0 v+ r
2 C1 \4 N3 D8 F4 G( w
  1. #!/bin/sh* m& i: V4 U* {  ^4 f
  2. #设定环境变量,如果没有设定可能会出现update报错: R# ~( @' L- L8 |0 @
  3. export LANG=zh_CN.UTF-82 F1 I/ a9 I$ V' a
  4. REPOS="$1"+ S" r  A8 \, T) K6 w& p
  5. REV="$2"9 {3 ~0 `" Y4 F2 l+ d# u- u. A6 {
  6. SVN_PATH=/usr/bin/svn
    # `: ^' C5 Y0 }: ^# D* i
  7. WEB_PATH=/web/project
    9 ]0 V# n! J, _- N9 S8 t. Y
  8. LOG_PATH=/tmp/svn_update.log
    1 E) y) L% s+ x2 H. j! P+ k" Y8 h0 t' E
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache" K( X/ ]  M* l2 F
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH0 t! p( L) v% {3 E! N8 L) t
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ! A/ j  D0 M: f2 G1 F  I1 i* t6 L
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH/ g, ?& m; h9 _% w6 L3 a
  13. chown -R www:www $WEB_PATH
复制代码

2 L: M0 x( p) E, R
作者: admin    时间: 2021-12-2 21:57
#!/bin/sh
9 x1 \7 S- \1 T$ ]6 v4 q0 C; Q+ b' lexport LAND="zh_CN.UTF-8"9 t  b7 a- H  W4 W3 S. T
REPOS="$1"$ s" D1 Q! E- i  J, v
REV="$2"
* L" H+ S" U% a0 a5 Usvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) w, p8 r. y# Z( ?" Vsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache6 X" K/ g) O% [( ?  y
  1. 7 J  j7 ~/ K" H+ B
  2. #!/bin/sh! ]7 z/ F6 V, |* R
  3. export LAND="zh_CN.UTF-8"5 L# Y* y& ?" S0 p, n2 x
  4. REPOS="$1"
    6 v' e7 _$ Z5 Z3 d
  5. REV="$2"
    9 A3 k% b; f/ A4 ]
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache+ t" }! r0 V, i( e& t5 n
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

2 {/ f0 e6 W) r2 y# b9 p; V6 Z# P% l0 R0 _* \4 G





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