2011年4月5日 星期二

版本控制

相信有在寫程式的一定知道,備份程式是一件很重要的事


但人工備份真的是很花時間,又很佔空間,不過沒關係,可以在網路上找版本控制軟體


在此介紹的是subversion,以下簡稱SVN


這是一套免費的軟體,而且還滿好用的


網路上也可以找到很多相關的教學


不過因為在用的時候,還是有一些手續要做,所以就寫了一篇當給自己參考的文章嚕


 


首先先建立一個「資料庫(repository)」,在此我是建在database的資料夾內



接著建立三個空的資料夾,分別為「trunk」、「branches」、「tags」


並執行匯入的動作



檢查自己的資料庫是否有加入這三個資料夾,如果有的話就代表完成了



這三個資料的名稱是為了之後版本圖revision graph要用的,這些動作非常重要,沒做這些動作的話,以後可能會非常的痛苦,因為SVN可能會誤認為所有的資料夾都是trunk,要操作branch 或是tag就會變得非常的麻煩了。



接著在要更改的專案內,check out,通常第一次都是trunk,相信大家有先看過前一篇的SVN教學,在此就不多加解說了。



因為只是要練習用,所以我只有建立一個test的文字檔



選擇此文字檔為要commit的對象。



習慣上,最好是要加新功能的話,建一個branch來做編輯測試比較好


所以我們要建立一個branch出來



因為trunk只有一個,但branch和tag可以有很多個,所以這裡我先以branches/a1來建立


雖然名稱不是很重要,但最好建立的時候是取一個比較有意義的名稱,以免brance建多了,就會造成困擾了。



建完後,SVN不會自動幫你產生這個資料夾,所以需要自己手動從資料庫把branches/a1的專案check out出來。



這樣就可以針對a1做編輯測試的動作了



我們可以先看一下版本圖,我們可以發現,現在已經建出branch了。



如果需要把專案複制給別人的話,建議不要直接用「複制」、「貼上」的方式,因為這樣會把svn相關的檔案也一起複制、貼上了,所以比較好的方式是用「匯出」,將SVN資料庫內的專案匯出



這裡要注意一下,匯出的時候記得檔名要改一下,不然可能會有檔案名稱相同的衝突



我們可以發現匯出後,就多了一個my_a1的資料夾了,裡面就是一個不含SVN的專案了




題外話,最好是建立資料庫後,裡面再建立一個不同專案的branch,這樣才不會每建一個專案,就要再多一個資料庫了;另外雖然SVN很好用,但別忘了還是要固定的備份資料庫,以免資料庫壞了,所有的專案也跟本出問題了,這樣辛苦的結晶就都白費了