? ? 在團(tuán)代開(kāi)發(fā)中,我們一定會(huì)接觸到源代碼管理工具一概念的,為什么需要源代碼管理工具?主要是為了解決在軟件開(kāi)發(fā)過(guò)程中,由源代碼引發(fā)的各種蛋疼、繁瑣的問(wèn)題。本篇文章就簡(jiǎn)單介紹一下源代碼管理工具之一的SVN(Subversion)。SVN是為了取代CVS而設(shè)計(jì)出的一種集中式開(kāi)源源代碼管理工具,目前在我國(guó)國(guó)內(nèi)使用率非常之高。
1.SVN的基本操作
? 通過(guò)下面這張圖片我們來(lái)簡(jiǎn)單了解一下VSN基本架構(gòu)
1.如果以類(lèi)來(lái)區(qū)分的話,一共有兩類(lèi)角色,一類(lèi)為左邊的Server,另一類(lèi)為右邊的User。
2.Server翻譯過(guò)來(lái)為服務(wù)器,觀察服務(wù)器左邊有個(gè)SVN repository,翻譯過(guò)來(lái)為SVN倉(cāng)庫(kù),由此引出 ? ?SVN的使用,首先要有個(gè)服務(wù)器,而服務(wù)器里面有個(gè)SVN的倉(cāng)庫(kù),倉(cāng)庫(kù)是用來(lái)存放源代碼來(lái)對(duì)源代碼進(jìn)行管理。
3.如果user1想要服務(wù)器的源代碼,那么需要將服務(wù)器的源代碼下載到user1的本地,通過(guò)svn checkout命令。
4.svn commit :將本地修改的內(nèi)容提交到服務(wù)器(包括添加的和修改的)。
5.svn update:將服務(wù)器最新的代碼下載到本地(如果本地沒(méi)有該文件則下載該文件到本地,如果有文件,就下載沒(méi)有的代碼到本地)。
? ? 提醒: ? ?每天下班前commit "可運(yùn)行版本":寫(xiě)了一天的代碼了,本地存了很多的代碼,這個(gè)時(shí)候一般情況下需要提到服務(wù)器進(jìn)行共享,因?yàn)轫?xiàng)目經(jīng)理可以通過(guò)提交信息間接的知道你今天都做了哪些事情.這里需要注意的一點(diǎn)是要提交一個(gè)可運(yùn)行的版本,如果提交的command +B編譯錯(cuò)的版本,這個(gè)時(shí)候如果其他同事更新也會(huì)把錯(cuò)誤的版本更新到本地,就會(huì)造成編譯報(bào)錯(cuò),就沒(méi)有辦法繼續(xù)開(kāi)發(fā)了,只有你這里修改到可運(yùn)行的版本,之后同事再更新,這會(huì)大大的浪費(fèi)時(shí)間,并且降低工作效率。
2.SVN使用的環(huán)境
1.服務(wù)器:
*作用:用于存儲(chǔ)客戶(hù)端的源代碼
*安裝:在window上面安裝visual SVN Server就可以了
*補(bǔ)充:一般情況下,公司里的開(kāi)發(fā)人員不必親自搭建服務(wù)器,一般由項(xiàng)目經(jīng)理或者技術(shù)總監(jiān)來(lái)做,但是我們也有可能會(huì)坐上這樣的崗位,所以也會(huì)演示
2.客戶(hù)端:
*作用:將本地的源代碼上傳到服務(wù)器,或者更新服務(wù)器的源代碼到本地保持同步
*安裝:可以在mac上面使用命令行
? ? ? ? ?Versions(可以在MAC上使用的SVN客戶(hù)端,對(duì)命令行封裝,功能簡(jiǎn)潔易用)
? ? ? ? ?cornerstone(可以在MAC上使用的SVN客戶(hù)端,對(duì)命令行的封裝,好用且功能強(qiáng)大,也目前用的最多的)
? ? ? ? ? Xcode,隨著xcode升級(jí),xcode對(duì)SVN的集成越來(lái)越好,也可以使用xcode來(lái)操作svn,其實(shí)本質(zhì)也是對(duì)命令行的封裝
3.SVN服務(wù)器的搭建
一.前提準(zhǔn)備
1.如果是在mac上面進(jìn)行演示,需要在MAC上安裝windows虛擬機(jī)
2.軟件:visual SVN Server,windows軟件,一般安裝最新版的
二.開(kāi)始安裝
1.將軟件放到MAC的桌面,并讓虛擬機(jī)共享桌面的內(nèi)容
2.在虛擬機(jī)中雙擊軟件
3.遵守協(xié)議,點(diǎn)擊next
4.選擇需要安裝的組件,點(diǎn)擊next
5.選擇版本為標(biāo)準(zhǔn)版本(點(diǎn)擊standard Edition)
6.設(shè)置軟件安裝地址,代碼倉(cāng)庫(kù)地址,以及傳輸協(xié)議
7.安裝成功后,選擇點(diǎn)擊finish后打開(kāi)該應(yīng)用程序
8.打開(kāi)后的界面
二.演示添加代碼倉(cāng)庫(kù)
1.比如開(kāi)發(fā)一款微信軟件,那么需要一個(gè)微信的代碼倉(cāng)庫(kù)
2.右鍵Repositories,單擊選中Create New Repository
3.填寫(xiě)項(xiàng)目名稱(chēng),點(diǎn)擊next
4.新人學(xué)習(xí)先選擇創(chuàng)建一個(gè)空的代碼倉(cāng)庫(kù),點(diǎn)擊next
5.配置訪問(wèn)權(quán)限,選擇沒(méi)有人可以訪問(wèn),點(diǎn)擊Create
6.創(chuàng)建成功后的顯示
7.一般情況下,代碼倉(cāng)庫(kù)里面不是什么都沒(méi)有的,創(chuàng)建文件夾
a.右鍵weChat,選擇新建,單擊folder
b.創(chuàng)建一個(gè)code文件夾(用于存放代碼)再創(chuàng)建一個(gè)doc文件(用于存放文檔信息)
c.創(chuàng)建成功后在代碼倉(cāng)庫(kù)中就能看到這兩個(gè)文件夾
8.剛在創(chuàng)建代碼倉(cāng)庫(kù)時(shí)設(shè)置沒(méi)有人可以訪問(wèn),需要設(shè)置人員進(jìn)行訪問(wèn),右鍵User,單擊Create User
9.填入用戶(hù)名和密碼,之后點(diǎn)擊OK,添加經(jīng)理,張三,李四三個(gè)用戶(hù)
10.創(chuàng)建完之后,來(lái)到Users,可以查看當(dāng)前所有用戶(hù)
11.設(shè)置經(jīng)理,張三,李四可以訪問(wèn)微信代碼倉(cāng)庫(kù)
a.右鍵weChat,單擊Properties
b.點(diǎn)擊Add,用戶(hù)添加用戶(hù)或者組
c.點(diǎn)擊張三,李四,經(jīng)理點(diǎn)擊ok,并且這里也可以點(diǎn)擊Create user來(lái)創(chuàng)建用戶(hù),步驟與上述創(chuàng)建步驟一致
d.設(shè)置所有用戶(hù)可讀也可寫(xiě),之后點(diǎn)擊確定
12.剛剛演示的是創(chuàng)建用戶(hù),下面來(lái)演示創(chuàng)建組,如果一個(gè)項(xiàng)目是多人開(kāi)發(fā),那么將開(kāi)發(fā)此項(xiàng)目的所有的人員都加入到一個(gè)組中,那么更利于管理
a.右鍵Groups,點(diǎn)擊選擇Create Group
b.單擊add,將所有成員添加到Members中
c.輸入組名為weChat,點(diǎn)擊OK,這樣就將張三李四經(jīng)理添加到了微信組
d.如果某一個(gè)微信項(xiàng)目做完了,這個(gè)時(shí)候需要開(kāi)發(fā)陌陌項(xiàng)目,那么可以創(chuàng)建一個(gè)陌陌項(xiàng)目,讓微信組的所有成員來(lái)開(kāi)發(fā)陌陌,只需要,設(shè)置所有微信組的成員來(lái)訪問(wèn)陌陌(創(chuàng)建一個(gè)空的momo項(xiàng)目并任何人都不能訪問(wèn)),右鍵momo項(xiàng)目,選擇properties,點(diǎn)擊add,選中Groups下面的weChat,點(diǎn)擊OK
e.選擇weChat組,并選中read/write,之后點(diǎn)擊確定,這樣wechat組的所有成員都可以訪問(wèn)momo了(演示完后,momo不需要右鍵直接刪除)
12.目前代碼倉(cāng)庫(kù)創(chuàng)建好了,也創(chuàng)建用戶(hù)可以訪問(wèn)代碼倉(cāng)庫(kù),下面來(lái)測(cè)試下如何進(jìn)行訪問(wèn),右鍵weChat,選擇Copy URL to Clipboard(復(fù)制到剪貼板中)
13.先嘗試在虛擬機(jī)的IE瀏覽器中進(jìn)行訪問(wèn),訪問(wèn)后彈出一個(gè)彈框,這里需要輸入帳號(hào)和密碼(因?yàn)樵搨}(cāng)庫(kù)不是誰(shuí)都能訪問(wèn)的),輸入經(jīng)理的用戶(hù)名和密碼點(diǎn)擊確定
14.訪問(wèn)成功后可以在瀏覽器中看到當(dāng)前代碼倉(cāng)庫(kù)中有哪些東西
15.需求為在MAC電腦上訪問(wèn)虛擬機(jī)的代碼倉(cāng)庫(kù),嘗試在MAC電腦上訪問(wèn)此URL,發(fā)現(xiàn)無(wú)法訪問(wèn)(因?yàn)樵L問(wèn)的為主機(jī)名,在虛擬機(jī),IE知道我的主機(jī)名,而MAC中不知道這是什么東西,所以無(wú)法訪問(wèn))
16.將主機(jī)名換為Windows的ip地址就可以進(jìn)行訪問(wèn)了
a.通過(guò)點(diǎn)擊開(kāi)始->運(yùn)行->輸入cmd打開(kāi)終端,輸入ipconfig
b.將主機(jī)名換成ip地址,在MAC的Safari上進(jìn)行訪問(wèn),彈框需要輸入帳號(hào)密碼,說(shuō)明可以進(jìn)行訪問(wèn),輸入經(jīng)理的帳號(hào)和密碼,點(diǎn)擊登錄
c.登錄成功之后,可以在此看到,服務(wù)器的代碼倉(cāng)庫(kù)里都有些什么東西
17.總結(jié):
a.安裝visual SVN Server軟件
b.創(chuàng)建代碼倉(cāng)庫(kù)
c.創(chuàng)建用戶(hù),設(shè)置用戶(hù)權(quán)限
d.創(chuàng)建組,設(shè)置組的權(quán)限
e.MAC電腦訪問(wèn)虛擬機(jī)的SVN服務(wù)器中的代碼倉(cāng)庫(kù)