環(huán)境:Win7 32 bit
SVN簡介:程序員在編寫程序的過程中,每個(gè)程序員都會生成很多不同的版本,這就需要程序員有效的管理代碼,在需要的時(shí)候可以迅速,準(zhǔn)確取出相應(yīng)的版本。
Subversion是一個(gè)自由/開源的版本控制系統(tǒng),一組文件存放在中心版本庫,記錄每一次文件和目錄的修改,Subversion允許把數(shù)據(jù)恢復(fù)到早期版本,或是檢查數(shù)據(jù)修改的歷史,Subversion可以通過網(wǎng)絡(luò)訪問它的版本庫,從而使用戶在不同的電腦上進(jìn)行操作。
VisualSVNServer集成了Subversion和Apache。使用VisualSVNServer作為服務(wù)端,TortoiseSVN作為客戶端。
VisualSVN下載地址:http://subversion.apache.org/packages.html
下載后安裝,一直【Next】,到如下所示
Location是指VisualSVN Server的安裝目錄,Repositorys是指定你的版本庫目錄,Server Port指定一個(gè)端口,Use secure connection勾上表示使用安全連接。繼續(xù)【Next】到【Finish】。
安裝好VisualSVN Server后,運(yùn)行VisualSVN Server Manger,下面是啟動界面:
右側(cè)狀態(tài)區(qū)包括:
Status:服務(wù)運(yùn)行狀態(tài)
SubversionAuthentication:賬戶信息
Respositories:代碼庫信息
添加一個(gè)代碼庫【Repository】,左側(cè)Respositories上右鍵菜單中選擇創(chuàng)建一個(gè)代碼庫,如下圖:
在下圖所示的文本框中輸入代碼庫名稱:
上圖中的選擇Empty……,只創(chuàng)建空的代碼庫QGroundStation ; 如果選中Single……則在代碼庫QGroundStation下面會創(chuàng)建trunk、branches、tags三個(gè)子目錄。
選擇默認(rèn)選項(xiàng),點(diǎn)擊Create,代碼庫就創(chuàng)建成功了。
創(chuàng)建完代碼庫后,此時(shí)還沒有任何內(nèi)容在里面。
下面說明如何遷入源代碼:
安裝TortoiseSVN后,我們在12-21文件夾中已經(jīng)創(chuàng)建了一個(gè)項(xiàng)目,要把這個(gè)項(xiàng)目的源代碼遷入到SVN Server上的代碼庫中,使用TortoiseSVN的將源代碼遷入。
右鍵點(diǎn)擊12-21文件夾,如圖,點(diǎn)擊Import選項(xiàng),
彈出
其中URL of repository是svn server中代碼庫的根目錄,在信息輸入框中寫記錄日志是個(gè)非常好的習(xí)慣
點(diǎn)擊OK按鈕,會彈出下面的窗體,要求輸入憑據(jù)。輸入用戶名密碼后,點(diǎn)擊OK按鈕,
如圖所示,源代碼已經(jīng)成功簽入SVN服務(wù)器了。
在本機(jī)創(chuàng)建文件夾QGroundStation-1221,右鍵點(diǎn)擊Checkout,彈出如下圖的窗體(參照):
一旦你對文件或文件夾做了任何修改,那么文件或文件夾的顯示圖片機(jī)會發(fā)生變化。
注:
注意:提交源代碼到服務(wù)器時(shí),一定確保本機(jī)的代碼是最新版本,否則可能提交失敗,或者造成版本沖突。
在QGroundStation-1221文件夾上點(diǎn)擊右鍵或在QGroundStation-1221文件夾內(nèi)的空白處點(diǎn)擊右鍵,點(diǎn)擊SVN Commit…彈出下面的窗體:
點(diǎn)擊OK按鈕后,彈出如下圖的窗體:
點(diǎn)擊OK按鈕,修改過的文件提交成功。
1、 在文件夾內(nèi)的空白處點(diǎn)擊右鍵,點(diǎn)擊SVN Commit…,和上面講的提交修改過的文件到SVN服務(wù)器一樣,就可以了。
2、 也可以在新建的文件上點(diǎn)擊右鍵,點(diǎn)擊TortoiseSVN=>>Add,這樣只是將這個(gè)文件提交到“變更列表”中。必須VN Commit這個(gè)文件一次,才可以將其真正提交到SVN服務(wù)器上的代碼庫中。
添加文件夾的步驟也是一樣的。
只要在需要更新的文件夾上點(diǎn)擊右鍵或在該文件下的空白處點(diǎn)擊右鍵,點(diǎn)擊SVN Update,就可以了。
注意:更新操作可能會因?yàn)榘姹緵_突而失敗,這是可以使用合并【Merge】或其他方法解決;也可能因?yàn)殒i定【Get Lock】而失敗,這是需要先解鎖【Release Lock】。
在需要重命名的文件/件夾上點(diǎn)擊右鍵,點(diǎn)擊TortiseSVN=>>Rename…,在彈出的窗體中輸入新名稱,點(diǎn)擊OK按鈕,就可以了。此方法不是直接重命名,我們使用SVN Commit提交到SVN服務(wù)器后才真正重命名。
1、 直接刪除文件或文件夾,然后使用SVN Commit提交更新到SVN服務(wù)器。
2、 在要刪除的文件/文件夾上右鍵,TortoiseSVN=>>Delete,此方法也不是直接刪除,而是將狀態(tài)置為刪除,仍需要SVN Commit,在變更列表中選擇被刪除文件,執(zhí)行后才真正刪除。
說明:實(shí)際上,從你把源代碼遷遷入SVN服務(wù)器開始,每一個(gè)版本的數(shù)據(jù)和文件,就算是你已經(jīng)刪除了的,也都可以隨時(shí)遷出。
在左側(cè)的Users上右鍵:
輸入上面的信息,點(diǎn)擊OK,我們就創(chuàng)建一個(gè)用戶了。按照上面的過程,分別添加用戶Developer1、tester1、manager1,好了,我們開始添加這些用戶到我們剛才創(chuàng)建的項(xiàng)目里:
點(diǎn)擊上圖中的”Add…”按鈕,在下圖中選擇我們剛才添加的用戶,點(diǎn)擊OK按鈕:
說明:大家可能注意到了下圖中的Groups,是的,你也可以先創(chuàng)建組,把用戶添加到各個(gè)組中,然后對組進(jìn)行授權(quán)。
按照下圖所示,分別對用戶【或組】進(jìn)行授權(quán):
注意:向SVN服務(wù)器提交源代碼的時(shí)候,一定不要提交bin、obj等文件夾,否則會很麻煩。但是web項(xiàng)目的bin目錄除外,但是web項(xiàng)目的bin目錄中的引用其他項(xiàng)目而生成的dll不需要提交。
一個(gè)好習(xí)慣:如果項(xiàng)目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,這時(shí)候不要簡單從他們的安裝位置引用,而是在你的解決方案下,添加一個(gè)Library的目錄,把需要的程序集復(fù)制到這里,然后從Library目錄引用。