cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介  U. S# N3 Q0 C; k: R* L
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略), l3 ?' w8 \3 q/ m0 {, K" N
1.准备工作
5 g: g8 `7 G7 g. w& r0 B$ w一台centos7 服务器 一台 客户端3 {% g) f) ^$ R! C2 B2 |7 h. y
————————————————
- w" g% B" S; s6 f; Z1、验证是否安装了SVN" U) d; l% H3 W4 l8 d5 m  q, J# j

2 R9 `2 h! U: _' q& _& q命令: # rpm -qa subversion
- x/ q$ j% n+ e
2 t) {% X. Y" Q! T9 ^% n# U如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64) b/ q% I* G' p; C9 ?- L! Z! v

: ]2 u" p2 |) w* o! x否则,空白0 v; B# h7 j' f2 I# T* ]4 a
4 d( v  H2 O' B2 {% n/ P2 c9 Q  z) k) b
2、安装SVN的命令1 V8 `+ @' _% h
7 m1 Y& {8 c3 G
# yum -y install subversion/ f5 ^. M! _/ H2 E0 Z
, J8 R; R! g: w! `; M. h5 G
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
, \0 ?9 d- h  e% `创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了/ Z/ _% ]3 C+ u! X. `' l9 W. W
. k7 j/ m& Y$ T& @8 D
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
, |4 n. y# `0 [* l
5 N4 I. |. O3 a1 o5 rsvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
% J. S8 r4 n5 W/ M
9 H1 `0 c" V. z5 k, W+ h5 H) c4 ?; ]! v5 h% o8 W2 p! i  W
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
3 i2 |- c% w% T0 u. o- G- q4 g1 w5 i$ s- m
# password-db = passwd
, [9 R% m+ m" \$ I
# @8 c9 b* C* v0 Y% z# authz-db = authz, i( ^( @- X% g, C; c* n+ `8 x% W

. K; S& n# R# O- \( D% k5 ]1 A! c4 Z1 I0 y
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效5 [) W4 s) G$ B' O6 c7 n
* f6 x7 {; o/ I
登录名=密码
3 D4 z  k8 Q8 F4 ~% k, }! M2 v
+ Z- O% t* U0 i7 tuser=123456, m! B5 l( @3 b8 f( v* u2 p

% J% c# C2 y; K0 \, t- \+ _: U$ p! K4 M% C1 F/ K5 F% e
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)/ I6 J% I, u$ Q( E$ m$ z' k3 b* R
5 |+ J% c, ~, z  c4 R
# * = r) ?* m& b5 U; V. K0 P6 u

+ g! v  G4 @# A  b# t; x[/]
; @9 p5 i& y/ c1 `8 y8 R* ?5 g( l  S5 F! s8 v
root=rw" o! b& z$ E) d  _

4 Z5 D' w5 P4 C% e这是用户的配置就完成了
* S5 U/ r  b7 `1 |. Y1 {/ J! |& I# l6 a, L9 I- B+ X: a3 i
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 3 f% }) V2 t" L, @) x
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo' U7 K6 J  }  H. C1 c1 X' `
( D  E! r% V1 P! |
使用此命令开启svn 根据自己设置的目录自行更改4 j! Y$ H0 \+ @& ?& Q7 n7 }! m8 y
$ r: u: |" [! ~3 _9 @7 t
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了7 i9 K' ?/ Z1 ?; B- w

: B# `7 B$ Z3 |$ T
0 U0 \/ Z' I) y* U1 ?win下载svn工具
) y2 k# U/ q: m+ G- x1 q
% A9 V/ X8 B& g' \3 M; [+ V接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
' o6 l6 r4 w: N5 l" R  {6 h; d+ t" G  `( f, |& w6 {+ ^
  f4 b- d5 h% M  e. z' G2 T% g
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码4 c$ f; A* e& K
输入你的svn地址 地址请根据自己的设置自行更改7 t" F2 P- w/ }6 b

& I, s  {' @" O; _- K5 n2 A5 ?/ x
) E& a( Y4 Q6 a- I) G然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
7 x1 G% i7 K% o9 l+ k9 \) F" B, W4 [, w' A1 C; \" J/ X
9 ?4 u& m" t* Q5 i$ F
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
2 ^  K! [* w0 ]5 e. L4 l0 |
% L/ h" x# D/ [# z1 U0 H8 f
% _/ d& O' i3 K1 [0 v
- ^% F  o4 P8 x# R0 ]& k7 v: C可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" ^: g4 {  q( |- G5 v* d- B- V8 R$ f* _) o6 `2 @& V, n% Q& t) i0 o( \1 F2 K
这时我们保存在版本库的代码就会被同步到网站根目录
$ b) q9 ]' Q7 B/ F, V
# h* @1 c: k4 {1 O( ^; K
5 H+ z- z: `( ?5 g/ \- U1 ~" f8 I# ?, C3 E$ A3 q
. j+ }! N! ~( H% b* o
6 [0 s& I+ R: {0 a

作者: admin    时间: 2021-12-2 19:04
配置同步web目录
! v& `) P) I- _' T+ e+ Y( lcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
, p  \- z! ]) r" f) ]9 X2 n: \- _% C, y5 x" t
  1. REPOS="$1"
    . w- R# E* s! [1 F6 N9 [
  2. REV="$2"
    0 M9 o% G, [8 q2 i8 v
  3. TXN_NAME="$3"- M6 U: d& e3 H+ {, `! v
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    - J/ v# R- K+ V3 e; h% p
  5. MESSAGE="$(svnlook log $REPOS)"* Y& Q7 u3 v( p% v. J; n: q
  6. SVN_PATH=/usr/bin/svn
    $ a9 V5 z( M# Y" v* Q3 `# O
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    - T- Q; r4 S2 u! n' O6 C
  8. mkdir -p /var/log/svnlog8 E8 D0 Y) N! o2 X: n
  9. touch /var/log/svnlog/ssyleo_update.log
    + B* B* K$ a$ ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log; T! f7 v# H4 @' ?( o9 j& V9 X/ x
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    / {  F3 R8 B/ ?$ ~
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH$ B. y* o5 V- I
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    9 S& W! G3 E" J3 s, O
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

5 k; `: B3 G2 Y8 ^( ^( G. ?- n; r( i& K
  1. #!/bin/sh5 Z" s/ [7 a: u$ E/ r/ F& l$ a
  2. #设定环境变量,如果没有设定可能会出现update报错9 m3 R6 r$ Q! J7 j! L
  3. export LANG=zh_CN.UTF-8
    0 ^) O" G  T. S5 C& E+ N
  4. REPOS="$1"
    ; W1 |) [0 w4 g/ B# S) g
  5. REV="$2"
    8 ~, k5 e' G% O/ q* r4 n0 e
  6. SVN_PATH=/usr/bin/svn2 y3 |: `- z8 p4 N9 }, x! v2 ~
  7. WEB_PATH=/web/project1 R) W$ ^& ^8 ^( {3 N
  8. LOG_PATH=/tmp/svn_update.log
    " [  Y+ {) i. N* A! o
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    5 ]3 R. |5 w2 F. R
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    ( ?; Z( |! q; r8 F2 u. [0 `
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ' y) |- O# I; [1 b. D5 Y
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH% S; g4 [0 G5 L
  13. chown -R www:www $WEB_PATH
复制代码

4 D9 o- c6 j# S, }  Q6 F
作者: admin    时间: 2021-12-2 21:57
#!/bin/sh
  \+ J4 f1 {  Rexport LAND="zh_CN.UTF-8"
1 @8 y, A1 H0 z" QREPOS="$1"& {9 s* O& S6 X1 i9 y/ I, J
REV="$2"& D1 Z# @, p# G4 ]: k; Z5 r
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) }. e0 Y/ p. D2 b0 r* K$ C& Ysvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" K) `! z* Z+ A

  1. ) D. H/ ?: ~- K6 o! ~) v
  2. #!/bin/sh
    $ Q# g+ r) _0 }6 U+ a! T
  3. export LAND="zh_CN.UTF-8"7 S! H( u, o5 |' f
  4. REPOS="$1"& F: t( z& I* K, Y
  5. REV="$2"" [1 T# z9 n# R+ R, |' ]
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    + W# N% ~2 d$ y: L+ s
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
4 R: {8 R& x$ Z1 ~
. W0 X) J8 s. y+ M' D' C





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