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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介* Y" U+ a5 _5 Y1 t3 ~' y6 N, \
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
+ z8 U: _1 M$ B3 A8 P$ U- o8 O0 {( C1.准备工作
4 L8 o4 r6 Q( z) S$ ~8 r0 n一台centos7 服务器 一台 客户端$ G! a  b$ t" A! i% b5 K  {4 }
————————————————% y# J: [+ v( J# M9 p9 ?, f
1、验证是否安装了SVN
5 v0 r/ R. f' p# N+ j! }  e, F) H
: [, i# |6 N* A' I1 L命令: # rpm -qa subversion6 B7 f# C) g! `, o5 i

6 [. F4 S: w# }+ U1 j如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
) y. G: n! M2 Z" r$ j6 y+ J0 ~) M. K" V1 u5 q" G1 e* v4 @# I
否则,空白' E  x% U2 w, Q  b

- R( P; B. m0 Q$ p6 N: u) E% G6 L2、安装SVN的命令
, F3 H" u+ m$ B- H8 c2 n
6 B- \4 [) [* d  J. C8 G! Y# yum -y install subversion
6 J6 Y+ G( ~5 u2 _5 Q0 {8 L
* f9 Q% \, B# w6 `- ?% H接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录% p! o' ^3 @3 m4 y7 U
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了- h+ K) i+ ?. L

9 L2 w  ~% \1 @* B  k然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置5 {9 _* l4 G6 ~9 @  ^0 B$ |: Z
5 I/ T9 ~1 G. b; M- m
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思). c4 X3 D7 S* }: {
# L: s8 x) A, d  O0 _- x8 }

0 F9 Z8 \, H/ Q# c0 a0 _首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格9 b6 {- ^) h! y; S

* ?2 e/ V' l% T* \/ ^, s- i- c# password-db = passwd5 F$ w& V1 A7 a+ {! L/ Y; [+ B- w

5 [3 N! k/ u7 v/ g( Z8 e7 C2 A# authz-db = authz  \; C5 c/ Z' H1 U

- e! p8 y- ?; ?0 A
: S6 P$ A! p3 p8 P  s6 l! e然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效  e- h3 C! `  r, W  N/ z  H

. J5 U: p8 t, j$ Z登录名=密码' ?# f; R" G: e& Z3 [

, X8 b9 _& W) M& N0 l) luser=123456' g' F3 {9 ], O, x+ j9 ~

8 ~  b7 d: A: G& O
8 f& {- @) A+ k& c7 L2 O最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)3 O( w& V0 N# n3 A( d) |/ U
# A. ^4 J# x& L0 m; Z: Q
# * = r
+ d( A' u% k; u9 ^' k
4 N( v, e9 U- y; R2 i$ {5 U[/]
+ Z: z% l3 S/ ]
; j& }, A- B5 k4 uroot=rw
3 e1 w4 {' ~; g! E4 k9 ?% g! v/ T; K+ I
这是用户的配置就完成了* R& P: n" \8 ^  s- R- t! u

5 b9 Z8 K0 ^9 X3 F, ]+ l/ i" F接下来我们就需要开启svn svnserve -d -r /home/svn/blog 3 |# \$ Q% i$ {9 I  v
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
2 Y% _' A% C  E) P
' d9 H) A1 j/ H( ]* G$ c! h使用此命令开启svn 根据自己设置的目录自行更改
* S$ e/ S& U- F7 N) I6 X1 ^, Q1 ^- l. i3 q
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了% A  z0 m: R" Y9 \$ \" ?. O
: S" `" b' S; O/ o1 {
* M9 F3 r9 H3 F0 D1 W
win下载svn工具
' n6 f. L/ m8 S0 }; N8 l5 D: ^: [3 U6 H& x" K2 T% [
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了7 W$ h5 @$ |9 n' i

7 B. _) c, c4 U- ]+ I% b* ?
* A5 B5 O1 W/ z0 Y& _重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
2 |8 z" r8 ^/ L! Q# z$ Z输入你的svn地址 地址请根据自己的设置自行更改
- Q: c' l0 _7 P7 z) v+ v7 b8 U
% \7 g6 p4 a% Z$ P1 R$ M0 M/ [- @& _3 Y0 l
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
) R4 l5 M$ Y' y# q6 h8 c1 D
1 F6 q0 l/ ]6 g8 s+ @
0 q' I9 j; L6 U* O( n8 y1 h(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
4 E4 I5 i  {6 i! ~& }7 p/ l- x- x  L' f) s) @" Q, T
- i/ f0 ]+ u6 `: w" K  v$ D
7 ]3 x( S: ?$ F3 h* n
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存) H% r# K" N' w

4 _9 ~0 A% R/ W/ ]% B这时我们保存在版本库的代码就会被同步到网站根目录+ G) c" X9 W! e# ?1 D7 O4 T

" a7 e6 ?& g$ r; v6 R/ n, P5 m
- _# F( A+ n. b% a" O: a( g+ ~. N( [3 q  q! }) A( X1 @
& Z0 a( W0 ]' K4 V
1 v9 ?1 R* F; g% L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录. o" \$ N+ K. Z7 I  @' r9 c& q: [& M
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit8 W/ v1 V, j6 I6 A& k- d* t

. v. ?6 N6 n9 H0 F5 ~/ |  u
  1. REPOS="$1"
    - ~0 c& o  @$ Y0 T5 G) m; x
  2. REV="$2"0 m% t" `/ H  M7 s9 T! T
  3. TXN_NAME="$3"
    ' }- ~6 F: L2 p5 X/ D1 D* I, k8 K4 L
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"' q7 i/ l; E' U4 C# n( R1 p
  5. MESSAGE="$(svnlook log $REPOS)"2 r' G/ m8 ]1 O) d
  6. SVN_PATH=/usr/bin/svn
    + J; @! ^& Z* Y. A* c: C) ?; H/ h
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    % X7 I! Y! A: e8 p- x% ]7 ?+ s
  8. mkdir -p /var/log/svnlog3 s& W% y. W1 S/ P3 B  q
  9. touch /var/log/svnlog/ssyleo_update.log
    4 K# K7 @1 e# \/ p; E; w( ?
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log& N3 M. h+ {# y; g# Q; }% G
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH0 L0 g# J/ ]) n4 R& X
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH) ^, J: _! w2 j8 n8 J- M+ |( B
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    ) L6 G3 I* d, A0 X" Q
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

! X( q4 Q+ x8 N8 V- ~" g' E- `8 Y8 j. G, R9 L
  1. #!/bin/sh
    8 i8 }5 c; X* A% O* t2 H
  2. #设定环境变量,如果没有设定可能会出现update报错# C+ u1 d/ ?1 s6 X
  3. export LANG=zh_CN.UTF-8, \! U& {5 s7 o0 @
  4. REPOS="$1"  l$ K, I5 @2 }- y& h/ r
  5. REV="$2"4 B5 `. e2 r( e+ j
  6. SVN_PATH=/usr/bin/svn( w) a7 n$ t, k1 {9 d% f. b
  7. WEB_PATH=/web/project; f/ R7 X1 }, d1 [- [
  8. LOG_PATH=/tmp/svn_update.log
    * M& g2 U* w$ C( b3 i2 q+ J2 \5 y
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache. }1 F2 N; ?% B# V  c: g7 K5 i
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH9 s# ?/ f$ r1 d+ h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH+ U; i, t# m' m  b3 f& j$ e* K
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    # w! m/ y" v' b. }! R
  13. chown -R www:www $WEB_PATH
复制代码
* U) F2 M* y+ u5 Z+ s
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh! A* K, b! |7 l4 \
export LAND="zh_CN.UTF-8"6 u8 k& w1 @' T! {9 ^2 a2 z$ ?+ n% A
REPOS="$1"
; h  T/ ~$ I7 n: H* GREV="$2", Y) L; O  C0 \) e* _
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
  _1 F  @1 X% Y3 esvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
) O8 ^: S) B2 f& A3 o+ o, e

  1. , h7 v" Y1 o6 a) p* K1 q+ ]! O2 s
  2. #!/bin/sh0 y9 _1 S" ?" y( L7 N% N- Y7 |$ }
  3. export LAND="zh_CN.UTF-8"
    , Z/ T' v" h$ s/ K
  4. REPOS="$1"
    8 p, ^$ c6 D3 x. ?& w
  5. REV="$2": e. M7 K& ]* c6 c; p9 U, P
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache# d3 }( B! x: s8 e
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

& d8 X6 I7 h9 |- U; r9 d2 L' V
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-19 22:31 , Processed in 0.130710 second(s), 18 queries .

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