cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
3 h( I- f: p) D: F9 O1 U/ l, TSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)' Y* r% ]- Q" ^: u
1.准备工作9 n) ~6 U) c2 W) h; K, u
一台centos7 服务器 一台 客户端! j7 n6 Z; E" A* e. r% i8 _& s
————————————————$ I: u# u  E7 k
1、验证是否安装了SVN
# k4 N, K" e# Y" t* f. x4 ^) t2 D' @$ I8 n
命令: # rpm -qa subversion+ j& W  F8 n- W
. Y0 Q" D1 U# v! I9 G
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64+ t6 S$ E% l; I' z
9 d, R; \( I, q
否则,空白0 j6 y) y8 z, d$ k

/ h- ~$ i7 F. ]; @! n" |9 j2、安装SVN的命令
" s9 @$ f' F! x9 Q7 ]$ y4 k
2 A0 I$ w( u- `# yum -y install subversion
) C7 b  a8 k+ ~) w5 f8 k, `: X" H: J7 L. Q
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录( _, ?0 h1 _; O3 X; K. [7 w" `
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
+ [* p% [: b& R# ^9 Q0 _4 w* \" s& u" T) t4 C" H
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置/ d. N4 P( U7 r; o+ @, I

. [! B7 B: b* J, I; H0 F0 [svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
4 C/ W8 P: Z7 x, ?7 g  J
, L# J3 B% [) t& }( k3 t* j
" Y" E1 L/ R+ }/ g8 M: u# |首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
& i7 r7 i8 u( G0 q& D2 R
* @6 I0 G- O! @6 F% `  _" D  o# password-db = passwd
+ z! ~$ K. E3 [
/ L& R5 \; z. V4 r) `  P0 J: Y5 Q8 D# authz-db = authz
1 u. l9 ?5 a  r3 d9 b2 D3 j
! j: g& |" g1 l/ o7 N
; x# T' t" o6 y/ K然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效+ S# Q) R8 ], O3 b5 M
  X3 G' F$ f% R) q
登录名=密码
1 `4 j2 @& T0 N' w% u# _5 r0 d1 f& U/ {) v5 R, H
user=123456
0 k) {2 Q5 J& W9 X1 N- q' N
" ~# D  w) c2 m; M- B4 r3 k) F
( A4 e( B" Q% d8 O最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
; T  h# B/ C! m! @0 v+ K% O* x. D7 O) N
# * = r* R: N" |/ T. S% h- @+ Q. z
% R+ p5 N* k& w7 H" |
[/]
/ X/ I% N  Y% q$ B
8 j3 z# P" ]) w8 Vroot=rw8 I; ?" Q8 U: t$ z. u3 O3 w
8 f8 ?# d! h3 c. I7 y6 F' T
这是用户的配置就完成了- i7 ?0 h) Z; G- p
1 b1 ]2 A1 {+ q2 S0 j
接下来我们就需要开启svn svnserve -d -r /home/svn/blog $ z6 N" p5 a1 j8 u! Q
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
( z$ V/ Z8 _- S$ Z* f, x2 [
3 k% V) e# _0 C# ~4 H- Y5 r" d. r6 h使用此命令开启svn 根据自己设置的目录自行更改
2 k6 X- _/ g2 z% U
0 y- l" t  M) B* W" b使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
$ o& a8 K3 X  Y3 Q* ?* p& j/ G% R/ Y$ @! `

% m* @$ [2 Z3 l' P0 C, d( F0 D! Jwin下载svn工具  Y5 c- V/ G" f" p; E/ @& C
0 f+ Z$ w4 V- k7 ]
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了, _) s  A8 v0 C

5 M, N2 o/ f2 M0 y# w, N, B4 f* b
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码; p9 d4 A+ C8 S  I: g4 I3 m8 }3 k9 ]# o
输入你的svn地址 地址请根据自己的设置自行更改
% B4 l* m8 @3 v* U' }" q  H2 b9 z8 [& ~! I3 n4 ]

( j/ Q1 k+ @0 T" e然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
; Y  }: E: @4 w$ ?+ @9 t1 _( q; `) d' N

) o& t/ G; ?9 \' @5 \4 P( L(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
* ]5 L3 P3 R6 R. O# q
- ]- ?6 s6 t0 p  B! f5 O9 i
6 d/ \% t; b' w: q! d% T0 ]9 x0 H1 `+ Y, a
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存; s0 D1 J% b7 Z
! W0 v' X% O3 {1 v# Z' E: E2 ~, Q
这时我们保存在版本库的代码就会被同步到网站根目录
2 z- {/ ?* d& a3 _* x" _/ Z* ]9 Q9 ~' J0 o4 ]3 [* V) }+ O

3 F8 o* a# M4 c* ~& o- u1 v! R) M. Z1 P: p6 ^

% w+ h9 K7 ]6 x5 l" t; F8 J
; y9 u( v+ O( t1 f' K
作者: admin    时间: 2021-12-2 19:04
配置同步web目录+ G5 ]$ s! ]* ^9 P5 z
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
9 y$ k! Z+ L- v6 j( j# [# \2 B
. C3 O6 r# V$ m8 f+ g
  1. REPOS="$1"+ A" b) _9 W, U+ F9 M- b# M
  2. REV="$2"1 w& ^% g* G+ Q1 Y( N! I; K. ]" ~
  3. TXN_NAME="$3"
    & X/ k. k- H0 E* q) {) v8 D" G. P
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"* J* w! @# d  D$ v8 I7 [
  5. MESSAGE="$(svnlook log $REPOS)"
    $ b0 y3 O& \+ p  h1 x7 X4 }! E9 [
  6. SVN_PATH=/usr/bin/svn0 @' d& K4 P# Y$ }3 d8 C  o. [
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    ' n1 Q5 a1 c8 D4 }/ J* ]& P/ w+ c
  8. mkdir -p /var/log/svnlog
    5 Q' Y, \" l& m/ ]! E, X# r. p' R
  9. touch /var/log/svnlog/ssyleo_update.log
    9 i. m7 c3 D% H. w
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    % ?# s9 j7 H6 Q: R5 M5 ~, q) D
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH1 q4 `0 y7 Z5 y# ?. C1 P
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
      I# [( }# N/ K3 w, N' N$ B
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    : a- Z2 `# o  q9 \2 K
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
& K2 `" b7 F2 i. a2 d
, K% C: c* P( O  `9 U
  1. #!/bin/sh  S7 A) m! g- j& f
  2. #设定环境变量,如果没有设定可能会出现update报错  D* m7 p# V4 N- j( g. F
  3. export LANG=zh_CN.UTF-8
    $ f+ u" y0 f' {. c- K% W
  4. REPOS="$1"
    7 U0 y9 l: X1 ?- j$ b2 V+ c) j
  5. REV="$2"% W2 A3 n1 S* E# I
  6. SVN_PATH=/usr/bin/svn
    ) ?7 y6 s+ x" a7 @
  7. WEB_PATH=/web/project
    1 s; C7 j( C7 N
  8. LOG_PATH=/tmp/svn_update.log% H; \. H1 F" m$ }3 O
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache9 {4 ]. _$ g0 s9 f9 N7 H
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH8 h% i5 X" V+ Q$ `$ d* v& h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH1 @. @1 n' j5 ~
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
      |: S2 h' a+ x
  13. chown -R www:www $WEB_PATH
复制代码

+ s+ f) _4 R, q8 G  M+ B" s9 u
作者: admin    时间: 2021-12-2 21:57
#!/bin/sh
7 x  a8 ~% Y! G+ |. e$ C( nexport LAND="zh_CN.UTF-8"
3 [: n8 ~' j+ ^4 Q+ `  _REPOS="$1"
' N/ @: ?/ L0 N# H$ P0 l9 j$ Y3 {REV="$2"
  A1 \" J& O! F" Z! O# I3 {svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache; C+ O5 U( X; W6 W
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ b, L* I5 N6 Z4 z5 m
  1. & K- ?  J8 l  I- U# u0 Y" H6 c
  2. #!/bin/sh
    4 u3 [% C( Y0 v7 I. E  ]1 H
  3. export LAND="zh_CN.UTF-8"
    2 l* ]8 q  ?* G; i5 t
  4. REPOS="$1"
    & \% k% D1 v3 n" ]* _! _
  5. REV="$2"
    ( G0 B& M& |0 d, E
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  i% c0 w5 d! d0 F: @
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
% L/ }  f/ c9 t8 Q
+ X. F8 B3 v" m





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