cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介% d% X& r, {+ u/ m* E8 W- f( |
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)) |9 _# E( f( W( V9 n
1.准备工作
$ g" f; [5 n9 J7 Z一台centos7 服务器 一台 客户端
1 h* k7 G7 d$ Q/ V9 ]————————————————
' s! Q2 R& i% x( i+ Q; s- l4 F: I2 a1、验证是否安装了SVN/ P$ @  T5 S: J3 I

! @  V. d- E+ q命令: # rpm -qa subversion
3 h( Q9 T# u' ~: d' I) w5 {, ]" L/ f7 k, r
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
: k0 W. s3 X" P3 m) n, f3 q6 m' n) q9 L6 }" {2 u
否则,空白
2 S7 O8 A% L- q- w! D9 N$ {2 V4 ~0 I+ b1 J7 ^1 f
2、安装SVN的命令
$ {5 {7 s" v: y; F# L% V3 v
' F% |7 o- x/ [% j# yum -y install subversion% B6 k1 Q  L* q9 W4 V$ y) I' i
% j1 K9 E) s/ i7 M
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录! a* z; @' z9 H. J  ]+ m
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
; f9 E  L: B& h- ]1 {3 w
* i9 R( Y9 z2 }然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置. z$ j# z) d/ n! l& H; s* Z' R
0 Q* ?% g+ }0 R$ [" V
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
2 G0 S# y. L( @$ F% V
1 G4 }* y: e/ ~$ V$ \  G7 @. B( V1 K2 ]8 U' }" b+ j& H6 b
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格" \- `* O0 T9 @9 }
* Q7 |; X% t$ f* [9 y- e
# password-db = passwd7 s% j8 Y- x+ {8 c/ v

8 F! G2 G( o) m# authz-db = authz0 F% M5 ]2 R/ r% q  g4 ?. B

8 F. V0 k* _4 ]9 O! r4 T! M, g6 k4 ~$ x6 x
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
. s' X) C: [) ]  e/ ]0 Z
3 w; a% |  K1 b4 h) I) L2 \登录名=密码
. I6 [6 Q) h! N: i& z* z8 G0 K- \0 ?$ Y% f2 s
user=123456
3 O/ X% d! R: b; J( q. p' T
' F: L  M6 E( F; L
4 b  X. e- A' r9 g, n& |% d) k最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
5 r0 p1 O  c$ H, p. K! d* B
1 K+ n( F5 d2 Z; p& p) K# * = r
7 X/ D( S' S; T7 p  y+ f7 v0 a% R6 _8 B
[/]
, X6 f+ w6 ^: W- B1 [% `0 y+ {- X; U( R
root=rw
) d3 m! Y, Z7 ~6 X5 t/ l  {: }# F
这是用户的配置就完成了) S! l# u1 Z6 \0 q
! ^. y0 {' K# B3 {& _# m
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
- `* Q# s  ~& \svnserve -d --listen-prot 端口 -r /data/svn/ssyleo$ P4 _* ?4 y& |1 A
3 ^( h+ w: p3 a) W! q) W5 B* ]
使用此命令开启svn 根据自己设置的目录自行更改4 n1 Z, _) l( J5 e
/ e6 b) g& x. q
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
2 ]1 M$ F% N8 y7 r; p9 g6 Z: y2 C& P
* t0 O8 X1 a! _
win下载svn工具" }0 Y' U" V9 x. w# g6 ]
9 ]" R9 r: h8 g, R7 |; [
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了: H0 Q# |2 y5 n& o7 @' o& E

3 Z. `, n) v; B4 F& Q% J; a) I0 M2 B1 s0 j6 `8 ]3 o
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
" U3 @; N1 M- a输入你的svn地址 地址请根据自己的设置自行更改
6 V  e9 l5 k# o& l" |7 m  d- m" I( B) G  X7 ?( w

, B9 R: K' m% V- Y2 c, o然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
( d' k6 A/ A; _( X# ~* n' N. ^
: _. S  n+ j! D* _, C. k" B2 ]# m- T/ p
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)/ X6 ^* A' A. J" d

( ~4 N0 C$ a! {& H* J8 b! l9 [  F: c' r1 ^' p8 A* p5 n: a+ }/ D
7 |7 V0 |2 b/ O5 b
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存1 g3 B' x: n) ]# V% f5 H
5 k# a# P/ R( |# L7 C
这时我们保存在版本库的代码就会被同步到网站根目录4 d; ^; I8 d: @" {/ q- r

% H( C0 s$ s9 L! T: i
: O4 U, h  F+ N+ j# g2 U6 Q6 o/ F! C" v, P( m9 k' E; d1 `
+ W' E2 L4 R2 [! a+ v) D

$ x( [& ?! F' h! \- B& Q
作者: admin    时间: 2021-12-2 19:04
配置同步web目录
# l/ N* S0 ^' Wcp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit, |/ Z9 N$ @& s( C( X# H
3 F3 M. r" T% z$ S6 a/ X
  1. REPOS="$1"
    + Q1 R, q& }1 w' f8 ^
  2. REV="$2"
    ! @+ f7 Y. E: ]' H# a$ v# L- M: o
  3. TXN_NAME="$3"
    4 @8 r2 p! x; g1 L/ W+ ]; @
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ' w+ F6 d( ~3 J6 f$ f
  5. MESSAGE="$(svnlook log $REPOS)"
    0 `% P& m' S0 ~, g
  6. SVN_PATH=/usr/bin/svn
    ) @  e) c9 H' b  X0 a& f
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    5 I  e3 R. Q* `; l% z" F
  8. mkdir -p /var/log/svnlog" k6 p( i' M5 d' m5 X: V% B* a
  9. touch /var/log/svnlog/ssyleo_update.log  C6 z' `9 K. w1 O
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ( [) N. _9 R9 e# C
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    2 Y# `* t& `: V: y
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    ! C% X9 r1 M+ _3 c1 M9 N* l
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH' r* J) A/ U0 ?. u2 O! y' D
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

  G: _* H2 G4 Z' B- T3 }1 ]7 ?4 d6 j8 m) _
  1. #!/bin/sh" C% G3 Z2 M3 a2 d8 P3 h
  2. #设定环境变量,如果没有设定可能会出现update报错" ~( Z- j! H% ?0 n8 s3 s
  3. export LANG=zh_CN.UTF-8- c- m% I/ f! n: }  d. }* K
  4. REPOS="$1"/ [) z, ^& R, M4 t( l. g0 K
  5. REV="$2"
    5 K% l' }5 J; o1 k
  6. SVN_PATH=/usr/bin/svn
    # N* G$ E, X' P1 s) i$ G  Y
  7. WEB_PATH=/web/project
    6 I7 b. H! ]# ]  C
  8. LOG_PATH=/tmp/svn_update.log7 ^/ k0 x- a; s2 A
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    - k% Y/ G8 O2 l' G
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
      Z3 S) {1 W: W8 c' H
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH/ z$ ]) B4 V/ A& ?
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    6 N/ G; w- ]1 a. D7 S
  13. chown -R www:www $WEB_PATH
复制代码

6 t0 ?/ W# m, \+ [$ I) ]
作者: admin    时间: 2021-12-2 21:57
#!/bin/sh4 a8 l% p. X& f2 m1 g5 C
export LAND="zh_CN.UTF-8"( ~8 F, h+ l' a) N# n; @- g$ v% }
REPOS="$1"5 ~/ k6 p. P7 V7 k
REV="$2"" l3 o* ^1 V/ ~' Y5 w- ~
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
8 h& ]( A8 @8 D5 }: _. rsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ C& ?+ ?9 E- s# w- G4 w$ _

  1. $ m: Y) p- A( Y/ @7 {
  2. #!/bin/sh9 m" X: O- A0 R* \
  3. export LAND="zh_CN.UTF-8"
    " Q  f1 |' T2 n  `) y1 T
  4. REPOS="$1"
    / l; r& h; Z) O7 D+ q7 e
  5. REV="$2"
    $ U9 [  ]) q3 i1 k" R; u1 }
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ) D2 X" q4 p* U# t1 C& n1 J
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

; Q, V* w7 a' R* |. v
7 a% E: g* W/ @7 U" |4 M




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