cncml手绘网

标题: centos7 安装svn [打印本页]

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介8 k3 H2 `- k8 g4 B% i( V- v
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
! j7 B* I5 {* O/ v8 l, ]3 d8 A1.准备工作
: J. K, U& @. i一台centos7 服务器 一台 客户端
! W/ p# H# N8 {————————————————
, a" c1 v$ ?6 {5 }+ Q1、验证是否安装了SVN0 p4 }5 @+ o' C* @$ c

# y0 x2 M. w- h( |. a& ^命令: # rpm -qa subversion
; Y+ Q$ N3 e* v4 f, I
( F2 K/ C" q- b如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_64* _3 d1 ~& B9 G* v

7 d' F" r- v% ?2 u9 |否则,空白
% F$ k; L0 |1 \+ H) Y- F  g7 H' a0 R
2、安装SVN的命令( R  S5 B" g7 n- M9 D

2 P% \3 h: [% H7 y6 e# yum -y install subversion3 H8 l" {( c9 j+ Q4 G, ?6 o
8 @+ m3 m+ Q$ ]; k$ y
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
( z  n5 y& n. U6 y) A: u) P创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了0 }+ b3 `! |- R4 p( k4 G

+ ~0 `! R, q1 ]! Z6 s7 l然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置
! G1 N4 g3 a- I- S7 x; e$ _( [% n! {/ Y
+ a' I- W/ m  s+ Z4 o% @' isvnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)0 Z- m( ?- D" f8 J+ T

9 s% H. {3 s  S- K) ~. V  y+ a/ V1 A7 u5 ?( K9 `2 X1 `
首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格0 T# x+ m6 c$ B: e/ J* k& p

3 S" y+ _! h  _1 w# password-db = passwd$ Z+ v, \$ m& L
0 d8 k4 @# v" U1 O( c
# authz-db = authz
' e. ?1 V9 `* a3 j" K) P9 v) q, U! U2 L- Y7 ?* @

3 o% `9 ~6 A$ i然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效, M" R) p) b  h8 V" t) p% b& `  o

; J6 ?1 [# c/ O) F3 C5 o登录名=密码
1 ]* ~9 x) X1 o0 f& {4 |5 C( m$ P! k* v
user=1234562 ?( P2 ~  f$ J

8 }$ ~" H% e1 v2 z" L+ L5 i1 |8 N, k( S3 k: N, b( ]
最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)" z; _8 H8 T* F* V- m0 |# i
3 a" e" ]' j0 b
# * = r5 Z" `) E$ Q$ o% \4 q
- a3 Y* l# r( u7 c: j  {
[/]
) D. \7 B. }9 S8 P& ^" w9 [8 d- B, v) k( g
root=rw
4 D# c) ~; h4 v0 U( ]' g, \' U5 [, O  g2 F" L, i
这是用户的配置就完成了
+ D# p7 Q/ h+ g6 L
! \: w1 x, J( B+ H- L  r接下来我们就需要开启svn svnserve -d -r /home/svn/blog # j% ]0 y) R* f5 }6 m/ g
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo% g: B0 L7 O1 E- V: q, ^  X  j( N

- Q: m0 P- a& J9 O( m" R0 h4 L使用此命令开启svn 根据自己设置的目录自行更改
/ X/ m* ~* ?+ }1 b5 j) G/ i
; u3 }( B+ Y5 ?+ h3 K* d. }使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了
) ^; e6 o8 I( l1 E4 A/ C) d. X/ e

$ V, c+ p0 J6 gwin下载svn工具& L5 U/ r9 ~0 {2 N) u/ r! a, [8 o9 y

- ^# V! P9 }; G" I' I) |接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了0 S- I3 o$ f, d" X: r" n( U, n
+ R  I) v0 e* ^
+ _: R) C. @5 E; U: e
重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码2 u* C( m0 N. y+ z: h
输入你的svn地址 地址请根据自己的设置自行更改
& l, ?9 G  |  V. B4 f. _' j: R4 }0 K/ ]

& t- S7 }+ s$ `! x$ ]1 L' A& @/ q* B然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了3 J# f1 U9 C, U& r4 C* @

' m: B' H4 y$ S( \9 q6 }* J( ~" W+ I& f2 z9 F* T
(svn客户端简单使用 svn update 更新代码 svn commit 提交代码): ]: B. I% b. C# _

+ v) F7 |$ i* L$ @: }' j% s' c& q/ F- E7 |

& g6 @3 D# @% a1 o4 G% B可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存# d! Z5 o) w7 S9 `" V. N
0 S& q' E1 V. Y( X& v# A. o4 b
这时我们保存在版本库的代码就会被同步到网站根目录$ P  n! Y! Z; k- Y$ U# M7 d, c
9 W5 {% L* z) v7 Y8 y2 }

5 }8 w% d8 j9 t0 D" b( W
9 m* u* L' X6 ^! A" n  B! d! V% O3 d: I' _# P

! e0 q/ E1 |* {. y' j. f
作者: admin    时间: 2021-12-2 19:04
配置同步web目录
# z- D2 L% X+ B0 o, {; Ycp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit
! `1 S8 o7 j* b9 B9 D! V
( H) t. R) Y1 A( P) L# B5 o, C
  1. REPOS="$1"
    ; {. N# \9 r3 g) y
  2. REV="$2"1 M+ s& x9 Q; W; |& N
  3. TXN_NAME="$3"1 G6 g9 l$ U5 Y
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    ! J6 `: w5 g( k
  5. MESSAGE="$(svnlook log $REPOS)"  `$ ?9 N# O+ n0 S
  6. SVN_PATH=/usr/bin/svn
    : C4 |3 ?' G5 `- N5 c% ^8 M' Z4 I
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    & L$ X$ x$ g3 j0 W4 o( U6 X' t
  8. mkdir -p /var/log/svnlog( E* ^. s7 M* s- n5 [. E
  9. touch /var/log/svnlog/ssyleo_update.log7 x" s' y; J1 @
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log
    ; a# V: |6 q8 m" r  V
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    9 K+ r+ c' Y1 Y9 T
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH
    1 u1 J4 Q6 d7 o# _
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    % ]6 C5 i. u+ U/ r
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码
' \2 ?( o$ q* ?4 h7 V$ a9 h
( t+ U7 W* J( q+ T3 c# r/ b/ [
  1. #!/bin/sh
    7 L. s$ H0 ^( R: e3 R4 ~4 \: Q! ]% d
  2. #设定环境变量,如果没有设定可能会出现update报错: T4 T$ ?% Z0 o9 F0 N
  3. export LANG=zh_CN.UTF-8
    ) {% O6 j  |) q4 v8 D1 E: o
  4. REPOS="$1"
    - k( i- V' `2 q' K8 F' T
  5. REV="$2"! Q1 z# h1 s1 O
  6. SVN_PATH=/usr/bin/svn1 t& Q+ Y9 [4 r7 W/ e( P
  7. WEB_PATH=/web/project
    # p% e5 K& M& N: ?' u
  8. LOG_PATH=/tmp/svn_update.log
    1 V; g" C6 Z' n% ?" K0 g' F
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
    0 \1 D0 ]/ T; N% c. S* L2 q! _
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    7 V5 Y) O: P6 l8 }: T) B
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ! }8 H. j& t' v& C1 c1 i/ a7 `
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    8 _3 q) a# m# F8 W
  13. chown -R www:www $WEB_PATH
复制代码
) Q4 U% L9 b3 M8 ~

作者: admin    时间: 2021-12-2 21:57
#!/bin/sh
4 i1 Z; _/ O/ [7 ~5 n0 uexport LAND="zh_CN.UTF-8"
7 u5 `* |- X1 {+ mREPOS="$1"7 V! W0 D9 n' D1 f% m
REV="$2"
. g6 W# w% I) S, ^svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
6 G; v- V  }2 H2 Bsvn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
/ _/ }2 Z  H1 Q
  1. 9 E( s* d3 k2 C
  2. #!/bin/sh9 q! I5 _& y9 ^; z! Z
  3. export LAND="zh_CN.UTF-8". {4 h2 t& |& v; @
  4. REPOS="$1"7 P, ~2 {; `, e2 e
  5. REV="$2"" a; X# w8 N6 k3 r6 J
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache7 N8 Y+ h% H- P8 y$ C8 M
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
6 t  \8 ?, M5 P! W9 g
& g0 q8 W2 o/ }$ F2 i& Q. u& O





欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2