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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
" X2 z( B; E# w2 LSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
. Y1 z$ k4 T" R( w4 U' {4 i1.准备工作
3 Z5 r" T% o2 z6 Z2 R0 t( i6 W一台centos7 服务器 一台 客户端2 Z9 Q# `: g, v
————————————————
  W" x& q5 m0 ?/ c1、验证是否安装了SVN
* X2 S+ t0 l/ |) j% H, p
! g. ?, }, y' y命令: # rpm -qa subversion
& Y; m: ?" [5 U3 k) |8 G
8 l- @: F& y# k如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
0 ]! X; c5 ?- V5 H  {8 z  p/ \( z5 k  U' g3 T, u
否则,空白
4 o$ v# g" s) B2 C  u2 B: r; C& x6 U  u0 |& f0 ~6 j8 Z
2、安装SVN的命令) y0 q/ a: K1 P" j
6 ]3 \0 S6 \9 a8 l0 I8 \2 w9 J
# yum -y install subversion
5 y' N6 f, F! |2 F0 u9 Y8 C" y/ S" i8 O' N/ ~% j
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录4 \/ ~& w9 ]2 y. N
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
: p0 R: W9 g0 H% z
6 W" D9 ~* |/ y; X) {* L9 c" U然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
3 U, @! W. j8 r/ K, Q& E- Y' p  h( @7 {" D6 B& H/ A5 o
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)  x- s, N* Q5 q# K8 w. y. U
3 Q4 L6 j9 X( |: s

, q% O* z2 g$ s; F" i7 ^首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格, r! f9 ~4 k/ E2 c; o
8 X( ?# ~3 l4 y3 h3 n
# password-db = passwd
; H: P: \' G. v9 }+ v
. T  L4 |, f$ Q# authz-db = authz6 H" s0 y/ g' Q4 E* {: m

3 Z& `. ^# s3 }! o, @) `
" V- m4 _! B+ z/ L/ g" P. s+ v然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
% [# s2 i5 p- x- r1 T( |8 r1 d" |% c  z1 o* @0 A8 q& G; V
登录名=密码
/ K- r/ P4 w4 o# l, j# }0 M+ d" J: U. [& {
user=1234561 v- z5 o$ o' G: m$ q5 x3 @# x% y
: Q' d& X6 w! o0 O, A( T7 y/ b

# q( e! F  V. G5 T1 l4 i# I$ Q最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
$ [& O$ D* ?/ o. I: O0 i" Q: E- ^* U
# * = r
" ~1 E$ f; W# P: f7 p6 A- ?+ ~4 E" c4 K
[/]  O  r9 W3 ]) s# n$ W, \* t
2 b8 b7 V- W$ a3 @0 v$ b2 [5 ~  f
root=rw
: U9 P! q$ V) j5 Z1 g& Q8 s8 E: ~6 d
这是用户的配置就完成了
% k, z( ~  M  k
' w( H2 l) g$ j2 C: n接下来我们就需要开启svn svnserve -d -r /home/svn/blog 9 d% x! h: W$ t% O
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo$ u# I$ a# @: h$ H1 t, |6 m

! s- z' K; Q7 f7 k1 Y使用此命令开启svn 根据自己设置的目录自行更改5 Z; X; B9 T+ J9 n6 V+ T

* Z. S/ \) K$ [" J! c$ e使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
, x5 G+ \8 j! \7 t; S& q5 A8 B# Q" W- ?- E7 B# K1 S# x% M1 Y, O
( W4 U1 b; {, j& T) M& ]& k& D0 ?9 L
win下载svn工具5 p8 `1 y) I$ Q* [4 Z9 ^9 T$ ~

$ }) }* s6 L, y2 k% q0 i$ |接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
5 J' l6 r& R+ q+ [! l0 i+ @4 p
. V! K; U/ M$ P% Q& v% k2 \9 O% l+ _0 P! s1 ^- g) D( y- F# \
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码6 M. C" ]$ E9 a$ _+ @3 ~# U0 G0 h$ s
输入你的svn地址 地址请根据自己的设置自行更改7 y" B# d7 Q: O0 k: [7 a! _6 B
: t3 ~' N) I" z) Q% N* U/ B" m

% w0 O5 p5 w0 z0 v4 e& l3 p. n然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了: o: y6 {* w$ S5 W" L
7 `8 s- F7 U1 E3 M2 T

7 P: w5 g3 a, p9 Y5 O. M(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
; C, K3 |) ?- w3 r* W& {4 T/ A: S5 h

- S( s6 ?4 H  w0 I' S& j1 \6 A* o% w: [8 K
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存7 _. G& y; C! S2 y
1 i5 m" x1 h! R1 c6 z- {
这时我们保存在版本库的代码就会被同步到网站根目录0 H  ?. {1 X7 H% t: g, W9 S; N

$ u5 _5 h. b6 O  l. U: t  h$ j) n+ ?* s, w( ]! T, X
/ Q6 P- e% ?) x3 x
  L# E* `) o" Z/ n" K
1 W( ]) O- k6 r# G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录2 ^9 e5 X8 E2 k6 }! [6 @, w
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit6 a4 s- U6 M, e1 k" s
2 `9 ]2 V/ w* P$ c
  1. REPOS="$1"
    " D( z5 y2 n* S# }, ~3 U7 f
  2. REV="$2"
    5 N$ [& F) v, Q& N& P& A! S! l
  3. TXN_NAME="$3"
    2 V6 C( S( w3 y: T9 J) o+ }
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    / L8 u4 N  u) s, C# z
  5. MESSAGE="$(svnlook log $REPOS)"3 G# i; T0 Z( |0 D
  6. SVN_PATH=/usr/bin/svn. N, s& ^  Z$ D9 ~) S
  7. WEB_PATH=/usr/share/nginx/html/ssyleo" L  h2 x' }1 P# S6 ~# c) R
  8. mkdir -p /var/log/svnlog
    ( O8 [0 `& Q1 P" t9 [
  9. touch /var/log/svnlog/ssyleo_update.log& ~6 w$ d5 D" Q6 K; Z
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log6 K4 X- m1 F5 m
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH! \7 N. e0 M5 H
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    5 \' a8 t* ~1 v# k
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH, F4 V, ]5 b6 A: k* L# c
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
% F+ [( C9 K4 K4 o# h% g

- F9 C& }6 S7 B# I6 `
  1. #!/bin/sh
    . [; s. c/ s1 [9 R6 y
  2. #设定环境变量,如果没有设定可能会出现update报错) T; @6 U0 X$ B
  3. export LANG=zh_CN.UTF-84 W  [5 N+ p4 H6 O2 A$ f, Q0 v
  4. REPOS="$1"
    - z7 R* X( U$ g5 s( W' d! y
  5. REV="$2"
    . o9 p) O, f- K, R' G( M* T  O
  6. SVN_PATH=/usr/bin/svn
    : Z* K" o* Q4 V& A* U2 A6 y
  7. WEB_PATH=/web/project
    , Q9 N$ W, c6 T0 ?$ }5 m
  8. LOG_PATH=/tmp/svn_update.log, ^' ]" I6 [: k0 h7 S
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache' |8 o$ b% t. s4 Y* Y
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    5 A. \5 }. [1 P
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH; {( N; v' T8 s: c; X- x; s# J! g, Q3 C
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH1 l6 b5 ]" Y6 @5 S. B8 J# L
  13. chown -R www:www $WEB_PATH
复制代码

  i3 V% q. C5 J) L  c4 |, d
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh' I! m5 ^0 E% ?' ~. g. Y
export LAND="zh_CN.UTF-8"
" m: A: ^: Z  j9 TREPOS="$1"
9 _1 @5 x" i0 L: S) |" ^REV="$2"
' a6 l" h1 M" o* @% L, Vsvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) b2 u: p! W7 P) S- L5 f* Y% E
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
  M6 s8 N% }. S( S8 `9 ^
  1. ( j$ R2 R/ ^6 \7 \/ D2 s, S5 O
  2. #!/bin/sh7 n+ W  o7 Y" q/ U5 v
  3. export LAND="zh_CN.UTF-8"
    # R3 V3 Q) V" w
  4. REPOS="$1"0 y7 J, \6 }3 s: ^# X' S* `( J
  5. REV="$2", F' i9 B( D( M$ _3 F
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    ; m6 F$ A& }2 |0 r* h; O- n
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
5 V4 V# c( S$ l; [5 Y( K
4 i& ?% K9 G) E& ?) L
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 16:16 , Processed in 0.134726 second(s), 21 queries .

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