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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[centos] centos7 安装svn

[复制链接]
跳转到指定楼层
楼主
发表于 2021-11-29 10:59:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一丶 SVN简介
8 w1 M. @$ u0 j: A3 V# KSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
* ~7 g' {; {$ Y; J9 G/ d3 X1.准备工作
, a9 ?+ d& M. u一台centos7 服务器 一台 客户端
% L; ~8 a9 Q8 b6 }————————————————# T: o7 h4 S1 E7 V) ?: R# S
1、验证是否安装了SVN
. K/ x8 f" l4 j; h( ?) e1 }' _* C5 C! B) p1 m$ t3 o: B: l
命令: # rpm -qa subversion; Z' U& c/ g8 a; q9 G3 {

1 v: Q/ k% m/ `& x2 f: A4 B+ `如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_643 ~+ A. s. z8 x/ `
7 \/ |4 [: g9 m: B' R
否则,空白9 p' K  |2 E$ N7 w3 V' u& x$ d
8 H1 r! T! H" q1 c! W$ _! J) s
2、安装SVN的命令
( E- B4 @+ `$ g/ U+ R% ~: z0 r  p, a3 |/ c% X
# yum -y install subversion) N7 V1 e$ f% `$ t+ i+ {) I
  k# x" H8 i! S1 n- }" \, W
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录0 L; M; }) V; G* V, A) U& s0 |
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了2 E: s+ g0 H* P: Q

! a% S! l+ D( V- U; i然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置: ]/ Q! M$ M# A/ `$ v
2 M# K* @9 e+ f" S9 @6 F$ F) c
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)) @1 ]2 b% S! Q+ ]  f

: d- Z/ i; \0 J" `0 L+ Y5 ?' f# [$ s$ ~& F2 W( m
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
! A# \, H& j) y, z; J6 }  J4 m! W9 T, Y1 g
# password-db = passwd3 k5 q0 ]% J7 d: C2 S7 h7 \  g; S

) h; @% ~; L. o: c# authz-db = authz$ n3 Q6 \! Y5 H1 Q! y# a

2 q2 ]4 C+ y6 F
7 T3 e4 O1 ?* u) g然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
# V0 O- R+ G- H
% J. v3 j4 M9 C4 F1 H登录名=密码
$ H* {: _& L9 t
% C! @& S8 \) s0 B7 euser=123456
9 F; s& |3 J+ G: r. R# t5 o. o4 N2 U6 a/ ]. E! `& f

( r- ~" B9 B' {1 u8 x& k6 {最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
: x& c0 E- c* `# ~6 N) n3 c# I4 `7 X1 b6 C6 h( ~' ]: v
# * = r" D: V/ b( H& [6 `. |
' a( q4 u. y# }. P3 ]& k
[/]
: a7 U/ n0 Q/ I1 \$ U- q
- Q+ {2 o; k% P; Proot=rw
( D" `) A) F6 e
4 t5 T& _0 H9 F7 u) l1 ~3 @8 R这是用户的配置就完成了
5 |3 f2 O0 a* v4 G4 V+ G9 a# X
1 Y' X+ K# U! }' G接下来我们就需要开启svn svnserve -d -r /home/svn/blog 3 K( j: |  f& _/ b5 Z$ S$ |. k2 V
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo0 Y. {/ g) E8 i5 }

7 N! E. w0 o" ~, q使用此命令开启svn 根据自己设置的目录自行更改
, H8 |/ Y8 Q0 W. w1 Z
5 S& B5 T# r# l5 U6 S9 L) j" b5 v$ e使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了5 R; R. f  b' R2 t& Y

3 A3 K% O+ V/ z3 f% ^$ f7 D+ j! p6 Q; E3 r: O
win下载svn工具
& ~1 f* ?% P+ @7 b( m+ {
8 E0 C/ U4 y  a3 E  O1 G/ a接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
2 ]7 B0 N  y8 l9 e; U" f) K, L. Q

6 Q  T& H! y- A+ u" O" Z重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
3 t' U9 w+ i. O8 n, D/ y输入你的svn地址 地址请根据自己的设置自行更改+ A+ d+ l; K1 [& G0 n  t6 a

) \& z$ l; Q2 M, D- {' h% s* y7 Q0 A2 r
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了+ N: g( I& ]2 Y3 J0 O
  T) }/ n# Q, z+ m3 S% v& |: c
% a" x8 q$ @" s$ P+ P* X) P% B1 v
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码): ]' L( P$ M. p; D% \6 y' F) S, R6 R
) x; F, k/ f# S  T, S
# a' I$ D* ]: m/ q4 {) S
* ~) z$ x5 d8 |- f& n
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
" R. V5 a8 M  `& A; n* z5 j% q
, z; @" a. U: ?" p& V1 S这时我们保存在版本库的代码就会被同步到网站根目录
' T8 E/ S( P* ?' P) r) v9 U' c' U6 u
# m$ m+ c" I, U) ~

" d5 P. E' Z0 q3 l; j6 _. I! t7 `
7 B- j5 I, p! |' A9 y9 a% S& E; ]8 U
8 U7 g# Q6 B/ |" {; L! E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2021-12-2 19:04:14 | 只看该作者
配置同步web目录' M$ _% H! O, S- Z
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit0 G3 K, a8 O! t" H# M
, _! L: r' J. Q5 T( p) I: \
  1. REPOS="$1"
    % m( q9 k* _: {+ p  B4 A
  2. REV="$2"3 g1 y; I  C! I; F7 }2 c: l
  3. TXN_NAME="$3"7 R8 ?! }( b! V  D3 {" }. g
  4. AUTHOR="$(svnlook author -r $REV $REPOS)". L+ ]6 e$ N) r( B
  5. MESSAGE="$(svnlook log $REPOS)"8 H0 L' I/ ?9 G- F
  6. SVN_PATH=/usr/bin/svn
    / w/ s* [9 W: N. F
  7. WEB_PATH=/usr/share/nginx/html/ssyleo% U6 U5 Y% e4 u) V+ I% |
  8. mkdir -p /var/log/svnlog$ B$ C! b- I8 r' J) E- P# v3 D' J8 m% c
  9. touch /var/log/svnlog/ssyleo_update.log
    8 M4 C! u5 g8 @/ @
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    : H4 A/ L& f7 ~, p: n, l
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    % p9 n- R$ X: ?* _. a$ ?. v, i
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH' u5 [1 W0 H. Y3 w" [2 x9 M4 }6 X
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    - ~6 k4 v3 s& C# Q: z
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
& n2 b$ B/ `7 h* j& B6 z

. v/ L$ M6 R- z" Y9 W- I0 G
  1. #!/bin/sh6 f& w: f  x$ k
  2. #设定环境变量,如果没有设定可能会出现update报错
    & G1 N/ f# Q7 p# E( \- T$ ~5 w
  3. export LANG=zh_CN.UTF-8
    3 d7 v4 s: U, V, I4 z
  4. REPOS="$1"
    ) q7 A# x7 m. ]  b  i* Q
  5. REV="$2"
    & E2 Q' }4 Z& G: v% A# g& u
  6. SVN_PATH=/usr/bin/svn. c7 z$ T, R- Y8 O
  7. WEB_PATH=/web/project+ T3 v  j1 q7 i8 \' z9 i+ j+ H6 w
  8. LOG_PATH=/tmp/svn_update.log
    % Q7 a0 c- e7 ^
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    5 d. B9 B: }3 }1 M
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH0 w) Y) V' s' W6 R8 z
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    $ h) N6 B7 B3 `' G
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    8 I; z2 A1 l6 `6 `  A
  13. chown -R www:www $WEB_PATH
复制代码
% D" }, V% d- K4 G- n
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2021-12-2 21:57:31 | 只看该作者
#!/bin/sh
& r6 n, H- u# Pexport LAND="zh_CN.UTF-8"0 G5 T/ `/ _& i: F! F
REPOS="$1"
7 ~( _# @* H( A% m/ E$ N# \REV="$2"" O0 K* N: ?& i3 Y: ]+ C* A
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
# o! l- g  K& [( d/ B# fsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
& m) l3 g9 [+ L% ~" g8 i

  1. % b, O5 {, \+ K0 Q5 J' f( Y* Y
  2. #!/bin/sh
    & n, D- o8 r" q# d6 p0 U4 z" N; I
  3. export LAND="zh_CN.UTF-8"; v4 g4 {$ d6 I& p1 ]; g
  4. REPOS="$1"" a2 _! V7 z" k- h
  5. REV="$2"
    % T. d7 V3 P( _$ t
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
    , o: w" {( [: x+ R9 _2 R" J. g! p: J
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码

! K' q7 f/ x- j# F1 S7 L; r  k
9 i5 p: h- w7 |& b& U/ Q
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 13:00 , Processed in 0.057209 second(s), 18 queries .

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