cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
( o) \9 z6 U$ M! T' O/ @SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
0 m1 A- j, a7 O1 q' F7 i9 K# Y1.准备工作
0 o! l. K8 O: @% W5 F8 k一台centos7 服务器 一台 客户端5 ?3 U/ h' c2 U: J, {% I
————————————————
) f9 i5 H. D+ Q: H6 {% V1、验证是否安装了SVN0 i: K8 u3 r9 d# \$ h

% r$ L) {# y# q5 a/ J* ?2 f命令: # rpm -qa subversion! ^! Y7 r5 v  H  f* S& ~

" n* t, H* A, J# @1 G( r9 u如果安装了,输出对应的版本:subversion-1.6.11-15.el6_7.x86_640 j  R0 d, D6 q) J( v+ X
4 g, M  W* e, ]  c) ^8 j
否则,空白
8 P/ O: e/ Y( R( h. z: {+ L
0 \& r, {+ [; x( ~$ N  `9 [' d! W2、安装SVN的命令
: q) e8 X! G( @% w- p
+ e$ h3 x0 V# S2 e! A3 C  s# yum -y install subversion
5 h3 S# S/ f+ |% y6 Y; v8 ~  o, d3 I5 Z( ]5 f. g0 c
接下来使用# svnadmin create /home/svn/blog  //其中blog为你的站点目录  /home/svn/为目录
$ F# F* E/ R* X" U5 S- x! R创建一个名为blog的svn版本库 ,进入blog目录 只要有以下目录就代表你的svn版本库搞好了0 `* F  P8 Z* u5 m
5 t0 l+ ^* t# k; g9 C& B
然后我们进入‘blog’下的 conf目录 对svn进行配置,conf 下共有三个文件 authz 是对用户权限的配置 passwd是用户和密码的设置& I9 Y/ p) v) P" g+ Q

6 {6 {* c, ?) @. Y) `svnserve.conf是对使用的配置包括是否开启匿名上传 ,用户上传等(差不多就是那个意思)# I. \  \3 J, H9 D+ t3 b3 p
  y: ~0 J, N7 L6 X2 z

- `4 ?6 F* s  {2 V& j首先我们对svnserve.conf 进行配置 把箭头处的两行 前的#去除 同时要注意前面不能要留空格1 P1 L& R: T' g1 a1 c" @$ x. x
" u5 \9 r6 D0 V" k
# password-db = passwd$ x# C+ g# u* |3 b6 l: q
4 ~9 m* Q0 d" {5 R; y2 k+ z4 K
# authz-db = authz+ P7 r! @3 |2 |' p% v% u

) h. \5 A" x% n3 c) h! M) w5 e, K) ]/ ?3 h1 ^4 U8 V
然后编辑passwd 文件 写上自己要设置的账号和密码 注意前边不能有空格 并且不能有 #号 否则配置无效( Y6 l. c" I! S. k; @3 k0 f( C3 U

+ Q% m9 Q8 ?" v, c4 A  o' X4 W登录名=密码8 ^( U  a' X6 }

# F; s( i* n5 T) K- z7 s" tuser=123456" V& L" W8 d# @, D& e
) |3 I7 q3 S5 `2 J# }% s

: D2 ]% R& _" b  O  _7 L- y' @最后编辑authz文件给让配置的账号设置权限(其中[blog:/] 设置的用户对blog下的所有文件都有设置的权限 r代表可读权限 w代表可写权限)) [7 U& _9 Z: U/ Y/ G

& u9 Z9 E% x4 ]9 o, T* D# * = r0 b7 P! a9 f0 J: ~/ m% o
4 G& n/ z! \/ N1 y2 X6 U, d
[/], N" x: t: A; L" @

+ P# z. h, t2 A6 y8 m9 Qroot=rw
  `8 l0 U. A1 A( {
9 k0 a$ D3 V" r9 L- D' U' j7 v这是用户的配置就完成了
7 o5 o+ ~& t$ S8 ~% \$ l- d) t6 F0 ]6 V# N( b. D
接下来我们就需要开启svn svnserve -d -r /home/svn/blog 5 Z5 U. y3 `' V
svnserve -d --listen-prot 端口 -r /data/svn/ssyleo3 e. ^2 H) F, v* |" S

) ?5 J$ ^. S( C7 ?使用此命令开启svn 根据自己设置的目录自行更改0 \! {' l+ T4 h# _) t

4 u. @. J' f3 m6 g* c使用netstat -nltp 命令 可以看到 svn的默认端口为3690 如果你是用的是阿里云服务器的话 还需要在安全组添加该端口,否则也会造成 客户端上传代码失败具体操作我在这里就不多讲了2 z& `9 b; @! P) ^$ L

, d3 F2 n( u& ?, H% m0 e- m2 z
: O% k9 p# z+ q$ x8 Wwin下载svn工具
0 j5 y) h3 e# V9 T& a6 o+ |5 n# K0 q
接下来我们就需要在客户端做测试 这里我用的是我自己的电脑 svn客户端的下载链接https://tortoisesvn.net/downloads.html 打开后根据自己电脑配置选择不同的安装包 (安装完记得重启电脑)这里安装步骤不就不说了 一直下一步就行了
, a8 Z" I1 w( \# K
! X; g& j) N4 l4 L  y$ c
! e) E8 ]% X. V# I& W重启完电脑后 右击鼠标 点击SVN checkout (svn捡出)下载代码
& L2 s9 Q0 D" h, s+ Y; e输入你的svn地址 地址请根据自己的设置自行更改* M0 M9 \& i' ?! R! H' L

; a1 O4 r( D" C1 a. `( f5 H# m. k; J, c
然后会弹出框让你输入你的账号和密码 输入后即可下载 服务器端的代码 你会发现文件夹里 只有一个.svn 如果没有的请将你的隐藏文件夹选项去掉这是你的svn 就搭建好了
8 r$ `- c6 u- V0 k
6 m; @" D6 l9 x4 I' m. x6 ^
9 r1 P; u/ A/ e(svn客户端简单使用 svn update 更新代码 svn commit 提交代码)2 _; }7 D0 c* y8 N$ U

$ P8 d" Y8 C+ {7 ~; h; C3 k: Y; O; r: s9 \6 L6 e

" r; h. E, H" h( @! ?4 f/ a. p& C可是这并不是我们想要的效果我们需要的是在web可以直接同步访问的所以我们要设置提交到svn的 代码能同步更新到web 根目录 svn 也是可以达到这种效果的 首先我们进入 web 根目录 这里我的跟目录在 /var/www/html/ 切换到 html目录下使用 svn co svn://192.168.1.35/blog 与网站根目录建立联系 同样的跟具体提示 输入自己设置的账号和密码并 输入yes设置保存
8 o9 x3 j) ~% c+ w/ P* Z
: A) @2 f5 j" u2 q这时我们保存在版本库的代码就会被同步到网站根目录
8 A& c, }3 K5 C) p- p+ s( l* `: |9 I$ \

% N; S3 E" W1 P( `5 g9 ^* Y7 J3 D% I6 c/ n

2 V0 R2 x$ r6 t& k: [; b3 r1 }5 m; b/ X4 l

作者: admin    时间: 2021-12-2 19:04
配置同步web目录0 A+ ~5 Y: j# h% ^8 J
cp /data/svn/ssyleo/hooks/post-commit.tmpl /data/svn/ssyleo/hooks/post-commit$ L( |! J- _( y4 f, G2 t

* h. ^. R( K. k: l7 x2 w+ m# W) K
  1. REPOS="$1"
    - y* O$ u9 g3 J' d; Y1 A' u8 _1 b
  2. REV="$2"
    + ^: S5 s3 {. N$ k1 @
  3. TXN_NAME="$3"% d) E/ ?1 n  q0 C7 c( O9 y+ N
  4. AUTHOR="$(svnlook author -r $REV $REPOS)") Z, k# J! w! B, A, n
  5. MESSAGE="$(svnlook log $REPOS)"
    , }, i9 M5 ~( E6 D4 c' G3 u) S
  6. SVN_PATH=/usr/bin/svn7 q' C2 F9 g" n; i$ {3 x
  7. WEB_PATH=/usr/share/nginx/html/ssyleo
    $ p4 M# i% f8 C, [; G
  8. mkdir -p /var/log/svnlog" c, F' U$ i5 X7 a; Q3 f
  9. touch /var/log/svnlog/ssyleo_update.log
    3 C- }# b: Z* W( M7 H2 v7 w4 T
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log9 C) r9 U( v" g& N. {/ B# C) R
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    3 J4 D& S# J% k: l' \
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH3 I" [4 T' ~, i
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH
    & G2 \& t. T/ t5 ~) k, W7 R" P4 G/ N
  14. $SVN_PATH update --username username --password password $WEB_PATH >> $LOG_PATH
复制代码

$ L; y; Q8 ^! s2 O' m; `& x7 N
# \, d) W+ X  }7 x- n4 ^
  1. #!/bin/sh
    0 _8 V1 G8 k  C  ~- \; ~+ n
  2. #设定环境变量,如果没有设定可能会出现update报错
    3 S+ t0 T  Y$ ^9 @7 x
  3. export LANG=zh_CN.UTF-8
    - f; D% I* v% E1 Q% t1 U
  4. REPOS="$1"
    0 V3 @& h9 v/ i0 U7 N
  5. REV="$2"# ~& z; c- J" O5 I4 `, q( H: X5 F) D
  6. SVN_PATH=/usr/bin/svn' H5 i' ^, @/ w& Y! O$ ^
  7. WEB_PATH=/web/project' W3 ]8 Y+ x0 t4 ^/ Y
  8. LOG_PATH=/tmp/svn_update.log8 z  l- F- K: Y; ]1 d* i
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache( R  I- c; p7 B8 c% ~
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    . [! e, r: ]! O( Z# h
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    6 E9 c* V. B" E/ `  V
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
    6 N: S' s. h5 I) x; D
  13. chown -R www:www $WEB_PATH
复制代码

4 B6 a, j3 k2 w3 O
作者: admin    时间: 2021-12-2 21:57
#!/bin/sh
9 u: G4 W  p9 V- Wexport LAND="zh_CN.UTF-8"/ G5 p( B6 n# a; ]
REPOS="$1"
, i9 t8 x( O1 J+ W, ~REV="$2"
1 d  |, J1 S: e* K- a2 Q. ~6 n$ ssvn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache% `: @: o' m, ~6 j2 X& b* x% k
svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
" i9 ~9 H1 n! L5 [
  1. 9 h% ]' C3 o* p& |( E% o# l" {
  2. #!/bin/sh( a6 ~  _4 r1 M- l* y: K
  3. export LAND="zh_CN.UTF-8". n. ~8 D2 _# I7 l9 H1 a
  4. REPOS="$1"( k5 k: p: H+ i& @- ]$ C
  5. REV="$2"5 K) q5 f3 N) l) I! }
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache) n* G5 f( {$ O8 X
  7. svn up /www/wwwroot/193 /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache
复制代码
. u0 V% G1 H: ?$ m, S6 E7 P

! g/ ^" v8 x0 V4 y& L- \% F4 g




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