cncml手绘网

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

作者: admin    时间: 2021-11-29 10:59
标题: centos7 安装svn
一丶 SVN简介
0 q, f0 ^1 X) ]- M" n. @& D/ u  E* kSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。(ps:百度百科抄的 可忽略)
( g# b; x- a' s  s/ y' j9 p7 b1.准备工作
$ r( N; Y+ ~- A% H. h一台centos7 服务器 一台 客户端/ h, I7 T' r# X5 y. W* m" V
————————————————
% {' W5 t- C: m7 c0 S3 @* r1、验证是否安装了SVN
, x1 n$ t& M' ]: z& g% ^/ T* t) ~6 ^! Y
命令: # rpm -qa subversion4 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 H1 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 T3 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* @( C9 s9 d" c: k! X; Y- v7 U3 D
  1. REPOS="$1"' s. o2 y% |0 T8 A  s( ]
  2. REV="$2"
    . |& g; ~$ k; u
  3. TXN_NAME="$3"5 m& G$ x5 R1 S
  4. AUTHOR="$(svnlook author -r $REV $REPOS)"
    8 x+ O; n% M: i( c- P
  5. MESSAGE="$(svnlook log $REPOS)". K% x+ D$ F# c) n: S: r
  6. SVN_PATH=/usr/bin/svn
      X$ l; p% C" R/ f& a* m
  7. WEB_PATH=/usr/share/nginx/html/ssyleo8 H# {1 t2 f2 C+ Q. _
  8. mkdir -p /var/log/svnlog3 N( x5 W/ z0 x; a  p
  9. touch /var/log/svnlog/ssyleo_update.log* \; W& ]3 r* a' m# ^9 o2 c
  10. LOG_PATH=/var/log/svnlog/ssyleo_update.log5 ~* M# F' W- k' J# {
  11. echo "\n开始提交" `date '+%Y-%m-%d %H:%M:%S'` '######' >> $LOG_PATH
    * R2 P" |) ^; H/ M6 l- V& c
  12. echo $AUTHOR,$MESSAGE >> $LOG_PATH/ c# r9 W, a3 }. o6 h/ G; z
  13. echo `whoami`,$REPOS,$REV,$TXN_NAME >> $LOG_PATH8 S* o4 K, \, {9 x4 }0 X2 J
  14. $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
  1. #!/bin/sh
    : [9 H" j0 g/ a; n# E. ^6 R: I
  2. #设定环境变量,如果没有设定可能会出现update报错, @2 s% b1 O  R. a$ a! d
  3. export LANG=zh_CN.UTF-8
    7 z# q+ @" k# _  A
  4. REPOS="$1"
    5 ^# w& H' Z) \/ w" D6 j
  5. REV="$2"; ^0 [1 T0 |$ G0 m
  6. SVN_PATH=/usr/bin/svn
    , x; ]) |6 A; Q* U9 w
  7. WEB_PATH=/web/project
    , w- L: H) ]/ Z9 }' E( m" A
  8. LOG_PATH=/tmp/svn_update.log
    / }& l8 f  w1 {7 y. n' B: }0 Q8 K
  9. #/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache0 ^7 G& g/ F, E3 h7 y/ `
  10. echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    " {2 A: ]% Y/ [- H+ v. z4 U: a/ n
  11. echo `whoami`,$REPOS,$REV >> $LOG_PATH
    ( ]7 V$ X6 m6 r, @: M0 H" ~
  12. $SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH6 o7 N! P& V* V8 r2 x! t4 y
  13. 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 Mexport LAND="zh_CN.UTF-8"
7 D3 w0 P$ c1 S+ g. |0 t! c0 |4 ?. SREPOS="$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. 1 O! o7 t& ^; z; Y# q6 X
  2. #!/bin/sh
    6 U: e4 q9 A/ L- u5 q
  3. export LAND="zh_CN.UTF-8"
    " Q7 v! n$ b& y6 H
  4. REPOS="$1"
    . w/ I# ^2 @  `
  5. REV="$2"& K+ u9 C! _7 D; [* w
  6. svn co svn://localhost /www/wwwroot/193/193 --username cncml --password pw --no-auth-cache" p: }3 x0 l+ N8 p
  7. 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