cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
- s2 C; v- t' aSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)* A" b! ?4 Y# |2 z9 t: X# ?8 ?: x  D2 H
1.准备工作
4 Q. Z& p9 H  u! n一台centos7 服务器 一台 客户端$ b" K8 o- r$ Z% A5 O: D' Q( q
————————————————
3 ~1 Q. N+ g( o: {) O! J( z$ t1、验证是否安装了SVN
- I' w/ r' v+ E/ k
; v8 b" M9 y3 D/ J命令: # rpm -qa subversion
6 W$ Y9 H9 {% W. w
8 I, b, b) x- D# K- U; s如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
2 C& s. W# P3 {: j& V8 V
, ~3 n- y- Y  G否则,空白" c9 |" J" a; ]5 E6 d+ \

- N8 _9 n# K: _6 \8 |" h2、安装SVN的命令) q( x! u. G7 a: P
8 Y, W! y* _* y3 a1 j
# yum -y install subversion3 L! {+ k; y5 L
5 D, |! w6 _8 _' i- P3 F7 D
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
. ^" ^9 i7 Y5 g创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了$ i' q+ F4 ]% ]. a3 \2 X) e' V2 H

- V" S- B9 A6 U然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
  `" }% l' y# K6 P* W/ n  S: e6 f$ V
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思), x% O  u/ i1 V; o

8 l* B- @3 y1 k7 a' S7 C
7 L( `' S& [: m5 b- f* o) `5 X# m首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格5 h! h3 _3 V7 _" u! ~& A
. Z) n1 L& K8 P( U0 l4 \
# password-db = passwd
- `/ a$ w% w, A, v: R  X' L3 H, Z' l6 n$ l
# authz-db = authz
) C) y4 P& C' I6 D5 G% _* e& P  s# H% [6 X- T5 ?4 P' e

4 K! Q: A. {# Z( q然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
3 i$ q) Z- u! R+ y6 B' N/ @% m6 [( r" a
登录名=密码
6 R- t: L( J0 c+ W. h' |: f: _( Z$ s8 s* V5 `# W
user=123456- `; m0 [9 q2 d) `

' T% p3 r2 p! U; M" V& u, i3 N3 R! k1 K
- |; u* w! @$ A& P+ X& E最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
% a* k  [# n: e% m1 r/ \, x8 L3 Q9 |5 V' }9 j( w/ q" j
# * = r
5 P3 Z: v1 f+ u& d5 J9 e: W3 T, q- \' I  N
[/]
2 S+ @! ?* q  ~$ l* ^
% a# S, r7 J- d" L- X: ^root=rw
4 Z. h6 D- G% Z/ V7 y0 h6 \$ f3 H2 D8 k+ J( L* `2 G
这是用户的配置就完成了
, r# r% W3 J# W
0 `7 C9 I1 j8 N/ Z: e/ N) d- S接下来我们就需要开启svn svnserve -d -r /home/svn/blog # o) O7 k. s. o0 W7 z' u$ `* \
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo% ~" v9 _8 d- W/ D8 G2 k# U

. V% |6 D+ B! N1 M使用此命令开启svn 根据自己设置的目录自行更改/ q" p: H4 |! o" j2 D
( L: D! H% H9 |) a- Q5 x
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' ]! `8 w' z9 U6 T0 S
3 A" S5 R+ q& ]) T
1 u) X5 s* E& z8 n6 T
win下载svn工具
  b$ Z$ h7 A( ?! J$ D0 h7 X3 i, }$ T) t
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了+ \4 R% I0 H" |, p

" i5 I6 N2 {( Q+ r
; l9 w3 H6 I- w( @重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
! X3 b' a$ K, {! t% K输入你的svn地址 地址请根据自己的设置自行更改0 t  H) o5 i' }! p) E
8 `' |7 i8 f/ Q( {( ?( E: a5 F
- L2 t  \# f2 S. {
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了  R, V/ K2 ~( e6 K' i

# t  z$ D+ }  L$ @7 l
5 P2 [# n* ~% B% J(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)1 S0 U, ?% A- E5 j& r3 w  Q- [
" g" H7 K$ R. O! w
3 Q1 k8 ~) l( ?# P. u( s

" a2 ?1 w- _& y5 |/ m& `可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存5 ]) z# v8 U0 U3 v
( g) u! }/ M" O, r& u! [
这时我们保存在版本库的代码就会被同步到网站根目录3 s8 X; x8 P, n
: J/ U8 ~9 z) V
  [6 O7 I$ E# E' P7 Q' k
! M  Z9 s% [; ?- g, l
6 g) e+ `, i! W$ j0 F9 B* ~
5 p  a2 E) y( i( W: h3 l

作者: admin    时间: 2021-12-2 19:04
配置同步web目录
% X! B1 R& s  g5 @4 W& u1 tcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit1 ?# t$ t: f5 A, s, X

; s; `" D7 Y& c3 j# z" j" H( Y
  1. REPOS="$1"1 Z8 d- B7 d  W  i9 Q( Y" }
  2. REV="$2"- z1 h! {$ N4 a- b& d$ \7 q5 i
  3. TXN_NAME="$3"
    5 F9 T- \* a/ e" I/ i6 W) ]
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"9 R) T( ]# F  D$ d6 {8 I
  5. MESSAGE="$(svnlook log $REPOS)"
      j8 w' R/ _2 m7 i( M
  6. SVN_PATH=/usr/bin/svn) L# v. z4 W; _9 b
  7. WEB_PATH=/usr/share/nginx/html/ssyleo1 {3 B$ }: E' o8 l
  8. mkdir -p /var/log/svnlog
    9 k9 L9 K* Y" N$ G6 l2 S' R! T- t
  9. touch /var/log/svnlog/ssyleo_update.log4 e% H- w, z+ L5 c* @! F
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log  U. ]. }: E6 A
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    + O) O" t. J7 Q. f0 F% G/ }! K7 f/ s
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH) U' @/ X% z  _, |' W; |7 ?" t# [0 I
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH. ]: y8 j/ s# [, u+ L9 N" g! R) e
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

2 ?' X* S) `/ y9 Y+ E( M, L8 b# E; e0 W3 P- }: Y
  1. #!/bin/sh  G2 V$ s, ~) I% z
  2. #设定环境变量,如果没有设定可能会出现update报错
    5 r% W: `4 N* y  N
  3. export LANG=zh_CN.UTF-8
    * ]1 t* V7 u5 Q; f$ e$ m1 m' u
  4. REPOS="$1"
    ! c0 V5 Z  W/ `! b  k
  5. REV="$2"
    4 N/ j6 V! F+ e+ e' P- `# O, U
  6. SVN_PATH=/usr/bin/svn1 ~5 k9 Y+ \4 I5 S( d
  7. WEB_PATH=/web/project7 j6 Y5 E) g& F$ U( T3 D
  8. LOG_PATH=/tmp/svn_update.log( x- s$ x. p% Z1 d4 d
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    * c) ^# y9 n# D2 h" G
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH% Y5 n, f) j, c  Z6 _
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    + R) H4 O& C+ c2 n7 [
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH2 \% F" x0 V! G0 D/ M5 P6 @
  13. chown -R www:www $WEB_PATH
复制代码
# T* _8 z+ |' R7 K/ I, i

作者: admin    时间: 2021-12-2 21:57
#!/bin/sh: k% Z! f4 N, Y. e
export LAND="zh_CN.UTF-8"
1 a) I- q( w' c+ I4 I. |REPOS="$1"
- f& d# [  z1 S. F' Q" h0 E0 ?REV="$2". S# a6 v: u' W$ Z
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
% {$ a; q1 J9 b/ L/ a0 w3 msvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
: _6 B( [' l4 K0 V& I$ Q

  1. # j' U* `- P5 k$ G5 Z/ E" J! p! e
  2. #!/bin/sh( G! y  u! W; \3 m; G" Q7 B
  3. export LAND="zh_CN.UTF-8"
    % q. J" E" |& n$ ]
  4. REPOS="$1"
    , E3 B* B0 y) R+ x: _  H5 j
  5. REV="$2", [% g8 L( _. @% J
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache( Y5 {* n  ~% U! I% ]
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
+ M- c5 c! o2 S0 Q* P8 m7 ~

  \: k' E# G! S) O$ _# f




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