日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SVN入门:流程简介 安装配置 项目库配置 客户端 上线方案

發(fā)布時(shí)間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SVN入门:流程简介 安装配置 项目库配置 客户端 上线方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

查看警告:show warnings;? 備份庫(kù)結(jié)構(gòu):mysqldump 庫(kù) -add-drop-table? >? 路徑

添加用戶:grant select,insert on 庫(kù)名 to '用戶名'@'172.8.8.8' identified by '密碼';flush privileges

所有權(quán)限:grant all privileges on *.* to 'name'@'%' identified by 'mima';????? ---- 小 Q

-----------------------------------------------------------------------------------------------------

【簡(jiǎn)介 流程 與運(yùn)維 模式 優(yōu)缺點(diǎn)】

SVN:subversion 一個(gè)跨平臺(tái)的開源版本控制系統(tǒng),管理著隨時(shí)間變化的各種數(shù)據(jù),放置在中央版本庫(kù)(很像文件服務(wù)器或FTP服務(wù)器),并且會(huì)備份文件的每一次變動(dòng),方便有bug后回滾版本。

存儲(chǔ)方式:

BDB--Berkeley DB,事物安全表類型,通過后臺(tái)關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn),服務(wù)器中斷時(shí)有可能鎖數(shù)據(jù);

FSFS--二進(jìn)制文件,用于文件系統(tǒng)后端,可使用NFS等,不需要數(shù)據(jù)庫(kù)存儲(chǔ),但兩種都沒有實(shí)體文件。

工作流程:

① 在中央庫(kù)創(chuàng)建或從主干復(fù)制一個(gè)分支;
② 從中央庫(kù)check out下這個(gè)分支的代碼;
③ 增加自己的代碼文件,修改現(xiàn)存的代碼或刪除代碼的文件;
④ commit代碼,假設(shè)有人在剛剛的分支上提交了代碼,你就會(huì)被提示代碼過期,你得先update一下然后再提交。,up代碼的時(shí)候如果出現(xiàn)了沖突,需要解決好沖突之后再進(jìn)行提交。

舉例研發(fā)使用SVN的一天:

① 首先從SVN服務(wù)器下載項(xiàng)目組最新代碼;
② 進(jìn)入自己的分支進(jìn)行開發(fā),每隔一小時(shí)向服務(wù)器提交自己的分支的代碼(方便回查);
③ 下班時(shí)間到了,把自己的分支合并到服務(wù)器主分支上,一天的工作完成,并反映給服務(wù)器;

運(yùn)維必備:

運(yùn)維不需要跟開發(fā)一樣經(jīng)常去用SVN,但管理系統(tǒng)的運(yùn)維人員需掌握

1、安裝、部署、維護(hù)、排障;

2、簡(jiǎn)單實(shí)用,雖然大多公司都由開發(fā)來管理,比如創(chuàng)建倉(cāng)庫(kù)、增刪賬號(hào);

3、簡(jiǎn)單理解,運(yùn)維就是開發(fā)商,開發(fā)等人員就是業(yè)主,運(yùn)維將服務(wù)搭建起來供開發(fā)使用。

訪問模式:
1、獨(dú)立服務(wù)器訪問,如:svn://ip(域名)/庫(kù)名

2、借助http服務(wù),例如:http://ip(域名)/庫(kù)名 (單獨(dú)安裝apache+svn 或 安裝web界面管理的CSVN)

3、直接本地訪問,例如:file://application/svndata/庫(kù)名
優(yōu)點(diǎn) 缺點(diǎn):

1、每次提交都保留原始副本,SVN數(shù)據(jù)量會(huì)暴增;

2、若連接不到svn服務(wù)器,基本都不可以工作;

3、在開源系統(tǒng)開發(fā)時(shí),很多人運(yùn)行的并不好。

a、普及度高,使用簡(jiǎn)單,界面化,而且教材多;

b、管理方便,邏輯清晰,適于開發(fā)人數(shù)不多的項(xiàng)目;

c、代碼一致性很高,集中式svn服務(wù)在某方面保證了數(shù)據(jù)的安全;

【配置安裝】

一般功能性的東西,直接yum安裝即可,除非有特殊需求,否則不需要編譯。

檢查:rpm? -qa |grep subversion

安裝:yum install? -y subversion

===========================================================

yum安裝rpm包后本地不清除的方法:sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf

===========================================================

yum安裝后會(huì)有幾個(gè)命令:svn 兩下tab就出來了

svn? svnadmin? svndumpfilter? svnlook? svnrdump? svnserve? svnsync? svnversion

首先創(chuàng)建數(shù)據(jù)存儲(chǔ)目錄,要根據(jù)線上環(huán)境需求搭建,我們是實(shí)驗(yàn)就無所謂了;

mkdir? -p? /svn/{svndata,svnpasswd}

啟動(dòng):svnserver -d -r /svn/svndata/

檢查:ps aux|grep svn???? lsof -i:3690? (端口可自定義)

重啟:pkill svnserver;svnserver -d -r /svn/svndata/

創(chuàng)建項(xiàng)目版本庫(kù):

命令:svnadmin create /svn/svndata/sadoc?? //創(chuàng)建了sadoc項(xiàng)目庫(kù),不能再用mkdir的思路了

記錄下項(xiàng)目庫(kù)最初的樹狀圖,conf(配置文件)、db(版本記錄)、hook(鉤子)、lock(鎖)

【項(xiàng)目庫(kù)權(quán)限問題】

cd? /svn/svndata/sadoc/conf

cp svnserver.conf svnserver.conf_bak?? //操作前備份是運(yùn)維的好習(xí)慣

sed?-i?'s/#?auth-access?=?write/auth-access?=?write/g'?svnserver.conf sed?-i?'s/#?aono-access?=read/anon-access?=?none/g'?svnserver.conf sed?-i?'s%#?password-db?=?passwd%password-db?=?/svn/svnpasswd/passwd%g'?svnserve.conf sed?-i?'s%#?authz-db?=?authz%authz-db?=?/svn/svnpasswd/authz%g'?svnserver.conf

默認(rèn)訪問密碼,都是在各自項(xiàng)目庫(kù)的配置文件下,但如此可以方便管理,根據(jù)自己情況來,不強(qiáng)制。

cp? passwd authz? /svn/svnpasswd/

chmod? 700? /svn/svnpasswd?? //安全考慮,當(dāng)然還可以再次加密,根據(jù)自己來

vim? /svn/svnpasswd/passwd?? //添加用戶,密碼

###?This?file?is?an?example?password?file?for?svnserve. ###?Its?format?is?similar?to?that?of?svnserve.conf.?As?shown?in?the ###?example?below?it?contains?one?section?labelled?[users]. ###?The?name?and?password?for?each?user?follow,?one?account?per?line. [users] #?harry?=?harryssecret #?sally?=?sallyssecret tengxun?=?123456??????#等號(hào)前用戶名,等號(hào)后是明文密碼 docuser?=?654321??????#更改配置文件要重啟服務(wù),更改authz和passwd則不用

vim? /svn/svnpasswd/authz ? //設(shè)置用戶或組訪問權(quán)限

###?This?file?is?an?example?authorization?file?for?svnserve. ###?Its?format?is?identical?to?that?of?mod_authz_svn?authorizationfiles. ###?As?shown?below?each?section?defines?authorizations?for?the?path?and ###?(optional)?repository?specified?by?the?section?name. ###?The?authorizations?follow.?An?authorization?line?can?refer?to: ###??-?a?single?user, ###??-?a?group?of?users?defined?in?a?special?[groups]?section, ###??-?an?alias?defined?in?a?special?[aliases]?section, ###??-?all?authenticated?users,?using?the?'$authenticated'?token, ###??-?only?anonymous?users,?using?the?'$anonymous'?token, ###??-?anyone,?using?the?'*'?wildcard. [aliases] #?joe?=?/C=XZ/ST=Dessert/L=Snake?City/O=Snake?Oil,?Ltd./OU=Research?Institute/CN=Joe?Average [groups] #?harry_and_sally?=?harry,sally #?harry_sally_and_joe?=?harry,sally,&joe #?[/foo/bar] #?harry?=?rw #?&joe?=?r #?*?= #?[repository:/baz/fuz] #?@harry_and_sally?=?rw #?*?=?ryanfa?=?a,b,tengxun????#定義用戶組,用戶間逗號(hào)分隔 [sadoc:/]?????????#格式:[版本庫(kù):/項(xiàng)目/目錄]------[/]表示根目錄下,即svn啟動(dòng)時(shí)指定的/svn/svndata#[repo:/sadoc]表示對(duì)repo版本庫(kù)中的sadoc項(xiàng)目設(shè)置權(quán)限 @yanfa?=?rw???????#用戶組前要加@ docuser?=?r???????#r,w,rw,?,分別表示讀,寫,讀寫,空;用戶必須在配置文件中定義過

重啟:pkill? svnserver;svnserver -d -r /svn/svndata/sadoc/

【客戶端訪問】

SVN服務(wù)器不是簡(jiǎn)單將文件一個(gè)一個(gè)存儲(chǔ)起來的,默認(rèn)用的FSFS格式存儲(chǔ)增量?jī)?nèi)容,打包成一個(gè)文件;

windows客戶端:

參考:http://jingyan.baidu.com/article/0aa223758081b788cc0d64e7.html?

1、下載TortoiseSVN 和漢化包補(bǔ)丁,安裝;

2、安裝好后,創(chuàng)建對(duì)應(yīng)項(xiàng)目的的文件夾,右鍵選擇svn檢出(check.out),輸入url和保存路徑,如下圖

3、輸入用戶名,密碼;在文件夾中放點(diǎn)文件,和目錄什么的;右鍵選擇SVN 提交(commit),如下


4、同步后,可以直接本地查看是否同步到服務(wù)端,右鍵選擇TortoiseSVN→版本瀏覽器(Repo Browser)

5、每回使用時(shí)我們要右鍵svn 更新(update),確保內(nèi)容最新。

注:刪除文件也是如此操作,提交同步。

問:版本庫(kù)地址發(fā)生了變化,怎么辦?

選擇文件夾右鍵?TortoiseSVN→重新定位(Relocate),輸入新地址即可。

windows內(nèi),有一個(gè)svn缺省目錄,包含三個(gè)認(rèn)證文件

svn.simple:包含基本認(rèn)證方式的認(rèn)證信息,通過wincrypt API加密

svn.ssl.server:包含ssl服務(wù)器證書

svn.username:包含用戶認(rèn)證的認(rèn)證信息

Linux客戶端:

檢出項(xiàng)目庫(kù):svn co svn://10.0.18.33/sadoc? /data/svndata/sadoc --username=? --password=?

本地檢出:svn co file://svn/svndata/sadoc/

error:svn:Can't convert string from 'UTF-8' to native encoding? //解決如下

or:export LC_CTYPE="zh_CN.UTF-8"
or:export LC_CTYPE="zh_CN.GB2312"
or:export LANG="zh_CN.UTF-8" (變量名不同的話)

or:export LC_CTYPE="en_US.UTF-8" ;export LC_ALL=

更新項(xiàng)目庫(kù):svn update svn://10.0.18.33/sadoc? /data/svndata/sadoc --username=?

查看項(xiàng)目庫(kù):svn ls svn://10.0.18.33/sadoc? --username=? --password=? --verbose

添加文件:svn add 文件/目錄名

提交文件:svn ci -m "commit data"?? //提交后,項(xiàng)目庫(kù)版本便升了一位數(shù)

(-m [--message] ARG? : 指定日志信息ARG?? //不添加這個(gè)-m參數(shù)是會(huì)報(bào)錯(cuò)的!)

項(xiàng)目目錄規(guī)范:

mkdir -p /data/svndata/sadoc/name/{trunk,branch,tag}?? //{主干,分支,版本標(biāo)記}

commit:把工作副本的修改提交到版本庫(kù);

add:將文件或目錄乃如版本控制,下次提交時(shí)加入;

import:將未納入版本控制的文件或目錄,提交到版本庫(kù)控制中。

納入項(xiàng)目庫(kù):svn import /data/svndata/sadoc/name svn://10.0.18.33/sadoc -m "import"

附加:把主干的東西拷貝到一個(gè)分支,不太常用

svn copy svn://10.0.18.33/sadoc/trunk svn://10.0.18.33/sadoc/branch/branch1 -m "create a branch"

【企業(yè)上線方案】

小型企業(yè)(圖左)

1、一般公司人員少,為了方便都隨時(shí)隨地更新,發(fā)布快;

2、經(jīng)常不經(jīng)測(cè)試人員測(cè)試就上線,拿用戶來測(cè)試,用戶體驗(yàn)較差;

3、據(jù)統(tǒng)計(jì)網(wǎng)站中50%的故障都是和代碼有關(guān),但都是運(yùn)維人員承擔(dān)責(zé)任。

建議:

a、個(gè)人電腦搭建LNMP環(huán)境進(jìn)行測(cè)試代碼,并有專職人員在測(cè)試服務(wù)器測(cè)試;

b、規(guī)定代碼上線時(shí)間,比如三天一上線,滿足需求的同時(shí)也要有原則,一切為了客戶體驗(yàn)度;

c、上線之前要備份,出了問題方便回滾(新浪做法:先傳到臨時(shí)目錄,再直接mv過去,或做軟鏈)

d、上線操作由運(yùn)維操作,否則開發(fā)隨意更新上傳,出了問題運(yùn)維負(fù)責(zé),這樣太不科學(xué)了。

中型企業(yè)(圖右)

擁有嚴(yán)格的流程,上線完全由運(yùn)維負(fù)責(zé),制定統(tǒng)一的上線腳本、備份腳本、回滾腳本,降低損失。




轉(zhuǎn)載于:https://blog.51cto.com/tengxiansheng/1864741

總結(jié)

以上是生活随笔為你收集整理的SVN入门:流程简介 安装配置 项目库配置 客户端 上线方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。