svn安裝和使用

一待逞、SVN

1受楼、什么是svn

svn:全稱Subversion垦搬,是代碼版本管理軟件,管理著隨時(shí)間改變的數(shù)據(jù)艳汽。這些數(shù)據(jù)放置在一個(gè)中央資料檔案庫(kù) (repository) 中猴贰。 這個(gè)檔案庫(kù)很像一個(gè)普通的文件服務(wù)器, 不過(guò)它會(huì)記住每一次文件的變動(dòng)。這樣你就可以把檔案恢復(fù)到舊的版本, 或是瀏覽文件的變動(dòng)歷史河狐。 許多人會(huì)把版本控制系統(tǒng)想像成某種 “時(shí)光機(jī)器”米绕。

SVN它也是安裝在服務(wù)器端的一個(gè)軟件,用來(lái)管理我們每次提交的代碼馋艺。沒提交一次代碼栅干,svn就會(huì)記住:該次提交的代碼是什么捐祠、提交人是誰(shuí)碱鳞、這個(gè)代碼的提交較上次的代碼有什么變化。

2踱蛀、同類型產(chǎn)品

vss:visual source safe

cvs:Concurrent Versions system

github: 分布式代碼控制管理軟件窿给,林納斯開發(fā)的(Linux)

3、使用svn開發(fā)的作用

①率拒、可以記錄一個(gè)文件的多個(gè)版本崩泡,并且能回到之前的某個(gè)版本

②、可以對(duì)相同的文件進(jìn)行“融合/整合”猬膨,而不是覆蓋文件角撞。

③ 公司領(lǐng)導(dǎo)可以通過(guò)svn查看每個(gè)人的工作情況

二、SVN的安裝

1勃痴、服務(wù)器端安裝(Subversion for windows)

2谒所、客戶端安裝(TortoiseSVN)

根據(jù)自己電腦的位數(shù)(32位或者64位)來(lái)選擇安裝。

查看自己電腦位數(shù)的方法:右鍵我的電腦?屬性

雙擊一個(gè)版本召耘,一路next百炬,最后點(diǎn)擊finish完成安裝褐隆。

安裝完成:在任何文件夾的空白處包括桌面污它,右鍵會(huì)看到如下選項(xiàng),表示安裝成功。

安裝完成衫贬,如果看不到右鍵選項(xiàng)德澈,重啟電腦。

三固惯、使用SVN服務(wù)

1梆造、創(chuàng)建多個(gè)倉(cāng)庫(kù)(存儲(chǔ)代碼文件)

1、先在E:/svn/app/下新建三個(gè)倉(cāng)庫(kù)(放項(xiàng)目代碼的)

創(chuàng)建倉(cāng)庫(kù):

用命令:svnadmin create 倉(cāng)庫(kù)地址

svnadmin create E:/svn/app/shop

如果提示

錯(cuò)誤葬毫。解決辦法:類似于mysql和httpd镇辉。

方法一:添加svnadmin.exe所在目錄到系統(tǒng)的環(huán)境變量。

右鍵我的電腦?屬性?高級(jí)?環(huán)境變量?Path.

編輯Path贴捡,添加svnadmin.exe所在目錄到Path中忽肛。

方法二:切換到svnadmin.exe所在目錄,再執(zhí)行該命令即可烂斋。

切換方法:

到此屹逛,倉(cāng)庫(kù)創(chuàng)建成功。

把其他兩個(gè)倉(cāng)庫(kù)也創(chuàng)建好:(針對(duì)個(gè)別電腦不能自動(dòng)將命令目錄放到環(huán)境變量中的情況)

到此汛骂,三個(gè)倉(cāng)庫(kù)都創(chuàng)建好了罕模。

2、啟動(dòng)倉(cāng)庫(kù)服務(wù)

用命令:svnserve –d –r 倉(cāng)庫(kù)地址

svnserve –d –r E:/svn/app/shop

服務(wù)啟動(dòng)完成帘瞭,這個(gè)dos窗口不能關(guān)閉淑掌,關(guān)閉表示svn倉(cāng)庫(kù)服務(wù)關(guān)閉。這是一個(gè)掛起服務(wù)图张。

3锋拖、與倉(cāng)庫(kù)取得聯(lián)系

1、新建了三個(gè)文件夾祸轮,分別表示三個(gè)程序員的電腦

2兽埃、這三個(gè)程序員,要和svn倉(cāng)庫(kù)聯(lián)系

在每個(gè)程序員的“電腦”上的工作目錄中适袜,右鍵?SVN Checkout…

彈出如下對(duì)話框:

點(diǎn)擊“ok”柄错。

然后看一下yasuo的文件夾(電腦):

查看隱藏文件的方法:

相同的辦法,另外兩個(gè)程序員苦酱,也和我們的倉(cāng)庫(kù)取得聯(lián)系售貌。

4、給svn倉(cāng)庫(kù)提交第一個(gè)程序文件

第一步:右鍵文件->SVN->add

第二步:右鍵->SVN Commit…

點(diǎn)擊“ok”

出現(xiàn)“認(rèn)證失敗”是因?yàn)橐哂覀儧]有權(quán)限提交颂跨。

那么現(xiàn)階段,先為了提交成功扯饶,先打開“匿名賬號(hào)”恒削。

打開“匿名賬號(hào)”的方法:

找到該項(xiàng)目的倉(cāng)庫(kù)配置文件:

打開svnserve.conf文件池颈,進(jìn)行如下配置:

注意:19行前面不要有空格。

修改完配置文件钓丰,無(wú)需重啟倉(cāng)庫(kù)服務(wù)躯砰。

再次提交:

4.1文件顏色標(biāo)志

① 藍(lán)色加號(hào):本地的.svn對(duì)該文件有形成管理(遠(yuǎn)程倉(cāng)庫(kù) 還沒有該文件記錄),該文件已經(jīng)執(zhí)行add操作

② 綠色對(duì)號(hào):本地文件携丁、.svn管理的版本文件琢歇、遠(yuǎn)程倉(cāng)庫(kù)文件 三者內(nèi)容完全一致

③ 紅色嘆號(hào):本地文件? 與? .svn和倉(cāng)庫(kù)文件 不一致(用戶自己修改了該已經(jīng)提交過(guò)的文件)

④ 黃色嘆號(hào):表示該文件正處于沖突狀態(tài)

⑤ 藍(lán)色問(wèn)號(hào):新建的一個(gè)文件,本地.svn 和 遠(yuǎn)程倉(cāng)庫(kù) 對(duì)該文件都沒有記錄

4.2在倉(cāng)庫(kù)內(nèi)部查看已經(jīng)提交的文件信息(看一下梦鉴,了解一下)

查看的結(jié)果:

這里就是了解一下李茫,能看到我們提交的東西就可以了。

4.3 ruiwen和jie要到倉(cāng)庫(kù)服務(wù)器中將已有的文件取得

update操作過(guò)后:

jie也是同樣的步驟肥橙。

到此涌矢,三個(gè)程序員都有這個(gè)文件了。從現(xiàn)在開始快骗,他們就可以一起開發(fā)了娜庇。

5、svn常見操作

checkout? ->第一次和倉(cāng)庫(kù)取得聯(lián)

update->后續(xù)更新

commit->提交

6方篮、目錄和文件的提交

6.1一次性提交多個(gè)文件

一次性提交多個(gè)文件名秀,無(wú)需add,只需直接SVN Commit…藕溅。svn會(huì)將沒有執(zhí)行過(guò)add操作的文件找出來(lái)匕得。

6.2提交文件夾

在yasuo的工作目錄中,新建了Controller的文件夾巾表,在Controller文件夾下新建了兩個(gè)控制器User和Index控制汁掠。

在Controller文件夾下,右鍵集币,顯示如下情況:

發(fā)現(xiàn)沒有add和commit考阱,也就無(wú)法提交,原因是他們的父級(jí)目錄還沒有提交鞠苟。

先提交他們的父級(jí)目錄乞榨,也就是Controller文件夾。當(dāng)然了当娱,提交Controller文件夾的時(shí)候吃既,自動(dòng)會(huì)關(guān)聯(lián)上他里面的文件。

選擇上這些文件跨细,提交即可鹦倚。

7、同時(shí)運(yùn)行多個(gè)svn倉(cāng)庫(kù)服務(wù)

錯(cuò)誤的同時(shí)運(yùn)行多個(gè)svn倉(cāng)庫(kù)服務(wù)的方式:

在打開一個(gè)dos窗口冀惭,在執(zhí)行svnserve命令震叙,開啟book和car的服務(wù)愤诱。

svnserve –d –r e:/svn/app/book

svnserve –d –r e:/svn/app/car

svnserve –d –r e:/svn/app/shop

如果這樣開啟三個(gè)服務(wù)是不行的,這樣的話捐友,我們?cè)跈z出(checkout)的時(shí)候,localhost指向不明確了溃槐。

正確的辦法:

開啟一個(gè)總的服務(wù):

svnserve –d –r E:/svn/app

到這里匣砖,三個(gè)倉(cāng)庫(kù)的服務(wù)都開啟了。

實(shí)驗(yàn):與book倉(cāng)庫(kù)取得聯(lián)系(檢出checkout)昏滴。

新模擬了兩個(gè)程序員的電腦(Xishi和Diaochan)猴鲫,在Diaochan的工作目錄下,右鍵?Checkout…

注意:此時(shí)谣殊,localhost指向的是E:/svn/app目錄拂共,所以,我們?cè)谙霗z出book項(xiàng)目的代碼的時(shí)候姻几,要加一層book目錄宜狐。

7.1已有用戶更換svn主機(jī)名地址

當(dāng)svn服務(wù)主機(jī)地址改變后,我們就要相應(yīng)的改變主機(jī)地址蛇捌。改變的辦法:

看到上圖抚恒,表示主機(jī)更換成功。

8络拌、同一個(gè)文件的不同版本切換

在yasuo的工作目錄中俭驮,新建了一個(gè)banben.txt的文件,第一次寫了11111并提交春贸;第二次加入2222再次提交混萝;第三次加入33333再次提交。到此萍恕,banben.txt這個(gè)文件有三個(gè)版本逸嘀。

如何來(lái)查看它有幾個(gè)版本呢?

看到的結(jié)果:

如何切換到之前的某個(gè)版本允粤?

回到之前的版本厘熟,我們一般是查看為主,當(dāng)然有時(shí)候也會(huì)修改维哈。

如果回到以前的版本绳姨,并且修改了文件,并且還要提交阔挠,會(huì)出現(xiàn)“過(guò)期”錯(cuò)誤飘庄。

原因是,svn倉(cāng)庫(kù)服務(wù)购撼,如果本地的文件版本 低于 倉(cāng)庫(kù)服務(wù)器的版本跪削,則不允許直接提交谴仙。

四、解決沖突(重點(diǎn))

在多人開發(fā)同一個(gè)文件的時(shí)候碾盐,很多時(shí)候會(huì)出現(xiàn)晃跺,兩個(gè)程序員的代碼在同一處(行)或者不同處(行)不同的情況。這個(gè)時(shí)候在提交代碼的時(shí)候就會(huì)提示有沖突毫玖。但是沖突的根本原因是客戶端的版本低于服務(wù)端的版本掀虎。

1、沖突的具體形式

1.1大家修改的代碼不在同一處(行)

此種情況付枫,一般來(lái)說(shuō)沒什么毛病烹玉,比較好處理,svn一般會(huì)幫我們將文件融合到一起阐滩。

起始版本是11號(hào)(yasuo二打、jie、svn服務(wù)器的該文件版本都是11號(hào)):

jie先將他的工作目錄下的該文件修改了掂榔。將一句話刪除了:

修改之后要提交

jie提交后继效,jie的本地文件版本和svn服務(wù)器端版本都變?yōu)榱?2號(hào)版本。

yasuo開始修改它的工作目錄下的代碼:

修改完畢装获,提交

yasuo此時(shí)遇到文件過(guò)時(shí)的問(wèn)題莲趣。原因是他的本地文件版本是11號(hào),而jie已經(jīng)將服務(wù)器端的版本變更為12號(hào)了饱溢。此時(shí)需要更新他的本地文件也為12號(hào)才能提交喧伞。

然后再次提交:提交成功。

jie在update一下自己的代碼即可绩郎。

1.2大家修改的代碼在同一處(行)

起始文件:

yasuo先在333333這行修改潘鲫,然后提交。

jie在3333的位置也進(jìn)行修改肋杖,然后得先更新溉仑,在提交,上面已經(jīng)說(shuō)過(guò)原因了状植。

jie在更新后浊竟,出現(xiàn)了下面三個(gè)文件:

這幾個(gè)文件是輔助文件,幫助我們來(lái)解決沖突的津畸。這三個(gè)文件都可以用記事本打開查看振定。

對(duì)比這三個(gè)文件,得出一個(gè)最終的版本:

然后進(jìn)行提交即可肉拓。

小貼士:在實(shí)際開發(fā)中后频,有些時(shí)候,代碼的沖突比較大,這個(gè)時(shí)候最好是和其他程序員進(jìn)行溝通卑惜,共同解決沖突膏执。

五、賬號(hào)和權(quán)限

1露久、先關(guān)閉“匿名”賬號(hào)

2更米、使得設(shè)置賬號(hào)和配置權(quán)限的文件生效

3、設(shè)置賬號(hào)

在生效的passwd文件中毫痕,設(shè)置用戶名和密碼征峦。

4、給賬號(hào)設(shè)置權(quán)限

4.1給具體用戶設(shè)置權(quán)限

① 開啟唯一倉(cāng)庫(kù)服務(wù)? svnserve.exe -d -r d:/svn/app/shop

[/]

用戶名 = 具體操作權(quán)限

② 開啟多個(gè)倉(cāng)庫(kù)服務(wù)? svnserve.exe -d -r d:/svn/app

[shop:/]? ? //或者 [book:/]? [car:/]

用戶名 = 具體操作權(quán)限

權(quán)限有兩種:讀(能update镇草,能從倉(cāng)庫(kù)update代碼)和寫(能提交代碼commit)。讀用r表示瘤旨,寫用w表示梯啤。

現(xiàn)在,給jie和yasuo權(quán)限:

亞索再次提交:

這里不要記住用戶名和密碼的原因是:因?yàn)閖ie和yasuo本來(lái)是兩個(gè)人存哲,也就意味著是兩臺(tái)電腦因宇。而我們是在一臺(tái)電腦上模擬操作的,yasuo記住用戶名和密碼祟偷,那么jie在提交的時(shí)候其實(shí)用的也是yasuo的用戶名和密碼察滑。

如果不小心記住了用戶名和密碼怎么辦?

3.2給一個(gè)組別設(shè)置權(quán)限

有些時(shí)候修肠,我們公司在開發(fā)一個(gè)項(xiàng)目的時(shí)候贺辰,往往會(huì)請(qǐng)一些公司以外的人(外包)來(lái)做一些專業(yè)性的東西。比如嵌施,我們要做一個(gè)視頻網(wǎng)站饲化。播放器找另一家的公司的人來(lái)做,這個(gè)時(shí)候吗伤,就需要給其他公司的人設(shè)置權(quán)限吃靠。

辦法:

先給這些人設(shè)置賬號(hào)密碼

給這些人分成一個(gè)組,并給權(quán)限

給組設(shè)置權(quán)限的時(shí)候足淆,組名前要加“@”符合巢块。

3.3開啟只操作某個(gè)目錄權(quán)限

還是上面的例子,最好的解決辦法是把外部人員的可操作目錄單獨(dú)設(shè)置巧号,比如開發(fā)播放器的三個(gè)人族奢,我們讓他們只有操作shipin目錄的權(quán)限。

六丹鸿、設(shè)置開機(jī)啟動(dòng)svn倉(cāng)庫(kù)服務(wù)

添加svn倉(cāng)庫(kù)服務(wù)語(yǔ)法:

sc create 服務(wù)名 binPath= "可執(zhí)行文件路徑 –r 倉(cāng)庫(kù)地址 --service" start= auto

sc create svnd binPath= "e:/svn/server/bin/svnserve.exe -r e:/svn/app --service" start= auto

注意語(yǔ)法中的空格

在電腦的服務(wù)中查看

刪除服務(wù)的命令:

sc delete 服務(wù)名

sc delete svnd

也可以對(duì)創(chuàng)建和刪除svn服務(wù)的命令生成一個(gè)批處理文件歹鱼。

生成的辦法就是將命令保存到一個(gè)記事本中,然后講記事本的后綴改為bat即可卜高。

七弥姻、svn使用細(xì)節(jié)

①南片、提交、更新代碼庭敦。

②疼进、領(lǐng)導(dǎo)查看每個(gè)員工的工作情況。

領(lǐng)導(dǎo)可以通過(guò)show log來(lái)查看每個(gè)員工的工作情況

八秧廉、真實(shí)環(huán)境使用svn說(shuō)明

解決沖突補(bǔ)充:

jie開發(fā)login.php和register.php

yasuo開發(fā)login.php和index.php

作者:peng_js

鏈接:http://www.reibang.com/p/dff9c62f1f3f

來(lái)源:簡(jiǎn)書

著作權(quán)歸作者所有伞广。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處疼电。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嚼锄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔽豺,更是在濱河造成了極大的恐慌区丑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件修陡,死亡現(xiàn)場(chǎng)離奇詭異沧侥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)魄鸦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門宴杀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拾因,你說(shuō)我怎么就攤上這事旺罢。” “怎么了绢记?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵主经,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我庭惜,道長(zhǎng)罩驻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任护赊,我火速辦了婚禮惠遏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骏啰。我一直安慰自己又沾,他們只是感情好睦疫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布萨赁。 她就那樣靜靜地躺著寻馏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帚豪,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天碳竟,我揣著相機(jī)與錄音,去河邊找鬼狸臣。 笑死莹桅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的烛亦。 我是一名探鬼主播诈泼,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼煤禽!你這毒婦竟也來(lái)了铐达?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤檬果,失蹤者是張志新(化名)和其女友劉穎瓮孙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汁汗,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衷畦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年栗涂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了知牌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斤程,死狀恐怖角寸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情忿墅,我是刑警寧澤扁藕,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站疚脐,受9級(jí)特大地震影響亿柑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棍弄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一望薄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呼畸,春花似錦痕支、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春花嘶,著一層夾襖步出監(jiān)牢的瞬間笋籽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工察绷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留干签,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓拆撼,卻偏偏與公主長(zhǎng)得像容劳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闸度,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容