您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6860|回复: 2
打印 上一主题 下一主题

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一丶 SVN简介+ _# |( E, u) M, W# S' o
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)* u5 g" w( c4 t5 F2 S3 x2 [
1.准备工作4 u7 R  v) _9 R  N. u
一台centos7 服务器 一台 客户端' A) p  e7 i1 J* X% y* h
————————————————
# W9 y$ T4 t) ~) }4 J) k1、验证是否安装了SVN" O0 T  B7 s/ H- [9 H- G6 n* Y

1 J- q+ C& |' @9 S" i9 l5 n- S命令: # rpm -qa subversion2 z7 ^, x1 W2 y+ x9 S2 x
  E3 f4 j) Z" `
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
" `4 I# K& B" `9 ]! L  B& A& Z, C0 _$ j* z* Q* Y* e1 T
否则,空白
/ R: f- i+ g- `! L! j4 i1 \: o$ T& p  H; W8 Q
2、安装SVN的命令
0 X# e2 y2 H/ y$ ~0 C: ^3 n, \
9 |# [+ t( w4 p6 J8 B# yum -y install subversion
* g( H% W$ `; p6 G; _5 T) H
: [' e, X2 P$ a( j1 c接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录0 t( ^8 a" B0 \- B( [0 w
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
6 i( F% ^. ?6 q' V% ?; {9 K
  H. G8 r* x* O然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
6 t  F6 R9 O5 }6 D: v, b  g- b  Z( q$ O4 x$ t. d
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)9 S3 z" f, K% {/ I/ p( J& t

* x& |4 I' w, B$ }$ W, m
' W* m+ x+ Q" o# o' a" j首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格  K7 R6 |6 e0 u; g& f

$ h' d% ^" a; c- c7 ]6 u# password-db = passwd9 V/ ~6 U( `, ?
% p/ r! p$ `- [) f# U' H  a
# authz-db = authz2 o5 I% x5 J8 S
# C+ Z, Y) h5 ?! w( y* E8 `

3 b3 [% Q9 Z8 G# ~" N6 ]) L然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
8 |7 j" ~) h+ S" ~3 Q) c* x, K% g! Y0 \* w. C8 ~! S7 U7 y5 T
登录名=密码0 h9 x$ ?- [/ l& |
& v1 G2 Q3 p0 J% I* [
user=123456  u8 G! s: h& f6 l0 F
) M- C  W; i/ ~4 C
  g3 j/ N9 L, H7 x! X
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)6 p! d' q4 V# h, R
" Z& \0 W7 t- b" v/ Y
# * = r
( t$ T! C& H! ?- l& G. o3 ~
% n' v  ~+ F( v6 X! A1 \4 ?( B[/]
; ~, V& X0 [5 k% O( [$ k$ \# M- x3 N
root=rw
8 a; X4 S" v( W# U) ]# _  O/ ~
- I; x. N9 X4 c- ~+ P这是用户的配置就完成了
9 \, q( ~6 f4 Q) o+ Y
; ?; i) i4 ]5 W( M5 @8 q接下来我们就需要开启svn svnserve -d -r /home/svn/blog
4 |$ g: V; w( H' osvnserve -d --listen-prot 端口 -r /data/svn/ssyleo7 W3 O/ f0 a: V0 ^: L1 _8 U3 s/ k
9 [/ |. x$ t3 C2 h" G
使用此命令开启svn 根据自己设置的目录自行更改
  ~3 M9 {5 }1 n/ A
1 z! ?9 b- E, J使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了' U/ m$ J) @% q3 }' C' ^

. T- Y* C& T% O9 f' h  {
9 R) m7 {; J5 P6 ]! P" F8 o; |win下载svn工具
/ C& A# g9 J+ _5 H2 C$ W1 k0 T
/ |/ Z8 Z4 S' a- t2 j接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了8 J2 X4 [- i: J$ O- [
* }: b7 T" H0 i+ {* E* X5 {2 U; t, e
+ L: j" g$ G' N4 H  w% u& `% _' W
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码' ^, u7 P  Z$ T9 M( f! M* T' S; t: K
输入你的svn地址 地址请根据自己的设置自行更改
6 y5 q5 F6 M3 I$ Z2 H; ^( ]7 @& t! @  }) h. p$ z

7 w7 q  S; O+ c然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了& u- L0 E4 b& ]# g& P3 F: V9 W
3 s9 i5 t+ w2 W4 Q

0 {. a" n; c0 U$ |(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
0 l/ g+ E5 o0 k7 i0 n( e/ l2 X" E$ x1 y) M( o
+ g; \+ t, v" g' O8 ?

. [1 W& N5 M% ~4 @" |2 R可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存0 w" n8 h- g' f( z
) x# p$ A, \+ i
这时我们保存在版本库的代码就会被同步到网站根目录* R4 v3 g9 s7 L9 d. I$ z! m
  G$ U. Y  j& R6 k2 ]: E+ r) M
& W3 s; B+ p4 ^$ J) |; w, Q* t

0 x6 Y) F2 l' b' T) n4 o. Q; {: ?6 Q. H8 h$ R

# b0 ?0 t. x2 I5 G  `5 T9 B2 T, H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
! L% s: W/ U% u- P: p: l4 jexport LAND="zh_CN.UTF-8"9 E, ]1 q4 ~3 t( T4 F- y
REPOS="$1"% K/ v' C+ _- ]( q: c/ F
REV="$2"# A$ V' i0 N, F# w! [
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache8 v8 z" ]' }( b( H# u+ @! U" |9 y: G
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
& O( l2 ~$ e( I8 c

  1. , f- O- m4 m+ k/ e" m
  2. #!/bin/sh
    3 Y8 X& y2 |6 Y! T5 O0 y8 p& W/ P: c8 ?
  3. export LAND="zh_CN.UTF-8"
    1 ^4 {6 g; Z, o* B7 B8 y1 ?
  4. REPOS="$1"
    ( S0 @1 Z6 J4 J4 c6 Y
  5. REV="$2"2 M! a4 C' S% R& q9 b: Q8 y% g
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache  R) m1 a1 m) B
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
) p- t$ p$ v8 n* R! P, w4 v$ n
- ?- T! D& L/ S& h" `. ?
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录; ^8 \( @/ ?. g6 A. h3 A% a
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit" u! o& Q5 o. A. A

1 x- B: l$ {+ Q& r- z
  1. REPOS="$1"
    9 {6 ]+ k  ^. |/ ]# v9 q4 d
  2. REV="$2"
    " q. z3 G7 Y1 E/ R  U' ?
  3. TXN_NAME="$3"9 v/ g, s, t+ W
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    6 i( _" f% C8 X1 j
  5. MESSAGE="$(svnlook log $REPOS)"5 N# \1 K) X  a2 v. c7 B' z6 Z
  6. SVN_PATH=/usr/bin/svn0 V4 E) ]" z% \; V: ]% E5 I% V
  7. WEB_PATH=/usr/share/nginx/html/ssyleo+ n) |5 S, ~3 }/ a, f9 I7 v6 N
  8. mkdir -p /var/log/svnlog5 f( I6 t9 n( ^
  9. touch /var/log/svnlog/ssyleo_update.log4 V# _3 h% n0 r
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    3 N$ z/ b: j3 m- u  Y
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH, R: e# \' W9 D- ~* e9 R
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    5 {) I) m5 L  C6 T3 [. h, k
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH# j( f1 i# l1 O/ R7 w7 V; R( t" D+ I
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
$ E9 L# U1 j1 ^8 Q' M

4 H+ _5 M7 @' i/ x1 B
  1. #!/bin/sh
    0 K, K8 |/ p. Q9 `
  2. #设定环境变量,如果没有设定可能会出现update报错
    : `  V% X$ H- z. \" _8 f
  3. export LANG=zh_CN.UTF-83 |, D* c+ s3 M: c6 h
  4. REPOS="$1"4 ~# E! \* r% s; C8 D% h# s7 E& V! Y
  5. REV="$2"
    0 w4 d& n4 N" ^5 i- O
  6. SVN_PATH=/usr/bin/svn
    1 k9 B  {, Z; K# L6 z) P
  7. WEB_PATH=/web/project
    ) t0 a& K  l2 l7 G- }- T. Z
  8. LOG_PATH=/tmp/svn_update.log( d: ?: F* P2 B4 N. p
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    ' A+ d& Y  }6 t" G# h. A
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH4 B, g% c& k! c6 |: K
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    4 }9 H* O( ^( d$ b- O; H1 p3 j
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    6 S! u" s4 a) i
  13. chown -R www:www $WEB_PATH
复制代码
) S+ x1 k4 e: g  F7 {! r
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-5 17:26 , Processed in 0.124828 second(s), 19 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!