cncml手绘网
标题:
centos7 安装svn
[打印本页]
作者:
admin
时间:
2021-11-29 10:59
标题:
centos7 安装svn
一丶 SVN简介
0 q, f0 ^1 X) ]- M" n. @& D/ u E* k
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
( g# b; x- a' s s/ y' j9 p7 b
1.准备工作
$ r( N; Y+ ~- A% H. h
一台centos7 服务器 一台 客户端
/ h, I7 T' r# X5 y. W* m" V
————————————————
% {' W5 t- C: m7 c0 S3 @* r
1、验证是否安装了SVN
, x1 n$ t& M' ]: z& g
% ^/ T* t) ~6 ^! Y
命令: # rpm -qa subversion
4 n" R# G. N0 q/ u
" A/ t& D: x) | \: y) q2 |: Q
如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64
. [9 [( `8 a/ h0 z% ~8 k
: w. _* A8 C% V- \: B
否则,空白
' Y7 H% u+ w! ?7 U$ y& E6 {
$ i1 I. C2 h9 Q- {
2、安装SVN的命令
) Y, S% @/ G4 v
" p8 i4 x! } t* r/ ?
# yum -y install subversion
: ]1 l j* g! U \) Y# u
' m. }$ D( ?& z# W3 Z# \' ]
接下来使用# svnadmin create /home/svn/blog //其中blog为你的站点目录 /home/svn/为目录
+ u! ?+ n3 `4 m3 o$ N
创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了
8 k) `7 N# s4 u9 B2 `; \
* M9 T( Z% @) y/ Y# _; x
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
" V$ T1 V* [ P% h
+ U" K2 ?# i+ e& ~# {
svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)
, d& f. u7 t$ p- n, j9 H
_( F/ D7 p0 B& { _" f; S: a( H
$ v! @/ D9 M+ t2 u! Q
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格
2 c4 u! L# j1 R' Y7 M
4 ?! U* `& S' V9 s! Q2 V9 s6 ^2 W
# password-db = passwd
. V m: y; x# d. i/ o+ \
8 z: U+ U1 b' i8 ?
# authz-db = authz
- i2 \! [9 ^: n5 S; Y
; u B* z" P; |
: l+ J( ]9 F4 H7 \
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效
- l4 o! E7 {9 x0 V/ ^
1 A% h. m- n* a3 ?9 }! k# e5 O
登录名=密码
! O, F9 M, Z3 \- x
2 O2 v. k5 K! p8 `: w" X1 {6 [
user=123456
9 R% r3 b( ?9 ]! I" ~: C
0 H- E) [4 A8 Z6 N! ]6 O2 \
; s6 m. u. e( c/ V1 \9 }0 j8 W
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)
& X0 E2 a+ K) m' K! Z5 c1 G; a
4 w+ V1 v! Q0 l# Y$ O9 o- g
# * = r
) H1 ]; Q9 v' H' R* {
) W; ]- {% Z5 r
[/]
" z0 S8 g' A7 a/ S4 M0 E
4 s; G: ` A2 D* ?
root=rw
( X, R0 C7 K* [! [. C8 l- O' |
7 }8 R; }, J( v& A' n& }3 B- S' A
这是用户的配置就完成了
* H0 k/ D% l7 v
8 G# k% N: w+ ~6 E2 p7 i' t
接下来我们就需要开启svn svnserve -d -r /home/svn/blog
7 u5 l! J/ d: f, j* e
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo
) N9 R8 U# P; o0 ~+ d1 [. \/ K
A( u5 s. F: R; j+ x
使用此命令开启svn 根据自己设置的目录自行更改
* }9 _0 u% X2 X# h k6 Q( H# o& |7 Z
, O/ z% Q, u* b2 H+ ~' I1 H
使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
* R+ U" m- k' W5 J' b2 M; d
2 W0 J; A. c2 X3 {; |
. }$ F7 J( X) `5 E4 Z/ z' @
win下载svn工具
3 T2 F, P4 g& j) i
% [ c" I; L! _; K- d, o! _2 K
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接
https://tortoisesvn.net/downloads.html
打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
' k- _. w `6 V7 c
" u; R Y6 R6 |5 X
; Y% q- z& c$ H4 a
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
& j: q4 \( o6 J6 g- I8 z, B" F
输入你的svn地址 地址请根据自己的设置自行更改
3 N% U! u* `( Q6 H
1 T5 O( j) i( ~2 g1 j( J
. I6 P& n+ D: S/ E
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
0 k1 n9 O; n. N" x2 U; o7 [
" c0 E2 L4 E! \! H' X9 ?
5 m7 Y' k1 A5 B4 E6 v
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)
; z& F/ |& a3 \" g4 f/ p3 n/ j
( M* h9 g7 Q% ?6 R
: @* f5 \/ n6 C9 B' |1 O& h4 a7 |7 q
3 w- R$ @. L! i% O2 B! C" q( z1 K
可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
+ A7 V( n2 c Y/ r D
1 B/ j: A: J3 s. q5 ]
这时我们保存在版本库的代码就会被同步到网站根目录
8 f5 j9 h3 T4 ?+ g
9 r' [9 c/ i% [" h N
! p: l9 ^( }( b3 _- {
6 S+ B# W/ W J$ R% ?
+ U& S/ S9 M" A& q6 V8 T
3 a( G) n& |9 _- h" V
作者:
admin
时间:
2021-12-2 19:04
配置同步web目录
: E( }; [! ]+ L* i" Z' l
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
2 ~8 A6 a7 _! {# F* @( C
9 s9 d" c: k! X; Y- v7 U3 D
REPOS="$1"
' s. o2 y% |0 T8 A s( ]
REV="$2"
. |& g; ~$ k; u
TXN_NAME="$3"
5 m& G$ x5 R1 S
AUTHOR="$(svnlook author -r $REV $REPOS)"
8 x+ O; n% M: i( c- P
MESSAGE="$(svnlook log $REPOS)"
. K% x+ D$ F# c) n: S: r
SVN_PATH=/usr/bin/svn
X$ l; p% C" R/ f& a* m
WEB_PATH=/usr/share/nginx/html/ssyleo
8 H# {1 t2 f2 C+ Q. _
mkdir -p /var/log/svnlog
3 N( x5 W/ z0 x; a p
touch /var/log/svnlog/ssyleo_update.log
* \; W& ]3 r* a' m# ^9 o2 c
LOG_PATH=/var/log/svnlog/ssyleo_update.log
5 ~* M# F' W- k' J# {
echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
* R2 P" |) ^; H/ M6 l- V& c
echo $AUTHOR,$MESSAGE >> $LOG_PATH
/ c# r9 W, a3 }. o6 h/ G; z
echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
8 S* o4 K, \, {9 x4 }0 X2 J
$SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
/ F. o4 W9 D7 v% D4 P) G
$ E x! p" Q. l7 B
#!/bin/sh
: [9 H" j0 g/ a; n# E. ^6 R: I
#设定环境变量,如果没有设定可能会出现update报错
, @2 s% b1 O R. a$ a! d
export LANG=zh_CN.UTF-8
7 z# q+ @" k# _ A
REPOS="$1"
5 ^# w& H' Z) \/ w" D6 j
REV="$2"
; ^0 [1 T0 |$ G0 m
SVN_PATH=/usr/bin/svn
, x; ]) |6 A; Q* U9 w
WEB_PATH=/web/project
, w- L: H) ]/ Z9 }' E( m" A
LOG_PATH=/tmp/svn_update.log
/ }& l8 f w1 {7 y. n' B: }0 Q8 K
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
0 ^7 G& g/ F, E3 h7 y/ `
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
" {2 A: ]% Y/ [- H+ v. z4 U: a/ n
echo `whoami`,$REPOS,$REV >> $LOG_PATH
( ]7 V$ X6 m6 r, @: M0 H" ~
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
6 o7 N! P& V* V8 r2 x! t4 y
chown -R www:www $WEB_PATH
复制代码
0 Q# O. U: t9 R1 d7 E; x4 C. H
作者:
admin
时间:
2021-12-2 21:57
#!/bin/sh
6 G9 v3 q. O, l( [$ A" K" o5 M
export LAND="zh_CN.UTF-8"
7 D3 w0 P$ c1 S+ g. |0 t! c0 |4 ?. S
REPOS="$1"
& j- ^8 N# c5 ]! A
REV="$2"
% @; N2 ?: q8 J1 c9 U& W
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
+ u6 n& n& L* v0 i
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
0 M7 k8 X8 `: p6 H9 a
1 O! o7 t& ^; z; Y# q6 X
#!/bin/sh
6 U: e4 q9 A/ L- u5 q
export LAND="zh_CN.UTF-8"
" Q7 v! n$ b& y6 H
REPOS="$1"
. w/ I# ^2 @ `
REV="$2"
& K+ u9 C! _7 D; [* w
svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" p: }3 x0 l+ N8 p
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
( v+ u* y* V1 c P
9 n# w. y. }5 O+ W3 q* F
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2