TOTURIALS

Revision Control (版本控管)

心得


相信很多朋友一定都有過重要檔案毀損救不回的慘痛經驗,
單一檔案就已經如此,如果是一個專案的話豈不世界末日了

在TAYAL開發初期,我是直接將整個專案壓縮成zip
並備份在雲端、NAS、本機電腦,但看似非常保險的作法,
實際上卻存在許多不便利性。

今天要開發或修改一個重大功能
順利完成則矣,失敗的話便要回頭下載前個版本
花上不少時間重新解壓縮,再重匯入整個專案
或是如果某天想回復或尋找以前的某個檔案或功能時
又要再費時尋找確認

所以不管是獨力一人或有和團隊夥伴共同開發專案
備份和版本控管絕對是非常重要的事情

如果有版本控管,便可以隨時將整個專案、個別資料夾,
甚至是個別檔案回復到任何時候的版本。

共同開發的話,也不需擔心夥伴或自己會蓋掉製作好的心血。

 

 

工具


版本控管的工具非常多,有TortoiseSVN, Git, SourceTree…等。
這裡只介紹SHIBAPOWER使用的工具,因為其他的我們也沒有使用過的經驗…(XDD

tortoisesvn_logo_hor468x64-497712e4

「TortoiseSVN」一套在Windows非常受歡迎的Client端SVN軟體
在業界也廣泛被使用,其所有的操作都能在檔案總管中
對資料夾或檔案以滑鼠右鍵中的SVN選單完成版控的操作

image-001

TortoiseSVN 官方網站

 

 

前置


SHIBAPOWER的開發主要以Unity為主,所以只針對Unity的部份來聊
在Unity的專案裡有各式各樣的資源,其中需要進行版控的
只有Assets資料夾裡的全部資源,以及ProjectSettings資料夾裡各項Settings
其他的文件檔案都是會因各人的操作不同而自動產生,所以不需要控管

在Assets資料夾內的所有資源,Unity都會再自動產生一份同檔名的meta檔
這個meta檔是用來記錄該資源在專案中的對每個資源連結的設定。
Unity預設meta檔是隱藏,建議設定顯示,這樣可以清楚看到meta檔是否有在版控狀態
Edit/Project Settings/Editor,打開Editor Settings面板
Version Control欄,展開選擇Visible Meta Files
Asset Serialization欄,展開選擇Force Text,如圖下所示
image-003

備註1:
Asset Serialization選擇Force Text是可以將Unity產生的檔案
例如Prefab,強制轉換成文字,如果日後遇到版本衝突時,
可以比對不同修改的部份做合併。

備註2:
之前有版友遇到meta檔更新衝突的事情而無法解決
後來發現是Asset Serialization和夥伴們的設定不同
所以在前頭有提到Project Settings也必需要跟著加入版控原因在此
才能確保專案開發中的一些設定是一致的,而避免一些錯誤

 

流程


TortoiseSVN的操作,網路上的教學資源很多
這裡只大約記錄一下自身操作的流程

首先,一定會先有一個位置是存放版控的資料
這個位置可以是在網路上,例如FTP
也可以在區域網路內其他電腦上,例如NAS
如果是個人開發的使用者,甚至可以在任何一個磁碟槽,例如D槽

這裡作法示範,我們在D槽建立了一個SVN資料夾當主資料夾
這個資料夾底下會用來存放各個不同專案版控的資料
然後再建立專案要用的資料夾,右鍵TortoiseSVN/Create repository here
image-005

看到訊息便完成後版控遠端檔案的建立
可以看到file:///D:/svn/tayal便是遠端 (server)的位置
image-006

再來是本地端 (Client)的設置
選擇要存放專案位置的資料夾,右鍵選擇SVN Checkout…
image-008

訊息視窗中,便會看到要連結到的遠端,以及本地端要連結的位置
image-010

連結完成後,便會看到ProjectTayal出現SVN的版控符號
image-011

接下來,就可以在受版控的資料夾下進行資源的建立修改刪除
各個檔案svn都會有圖示讓使用者辨識是否有在版控中
例如我們新增了兩個檔案,其中一個檔案Doc.txt將其上傳到遠端加入版控
便會看到尚未加入Art資料夾是問號,代表該檔案目前不在版控中
所有修改只要不加入版控,都不會影響到遠端
而Doc.txt已經在版控的監視之下,
image-013

如果修改了Doc.txt之後,便會看到版控的提示圖案,
代表該檔案目前和遠端的檔案版本不同
接下來就可以選擇是否要上傳覆蓋遠端,或是下載遠端檔案取代本地端
Image 014.png

當然,我們也可以隨時檢視遠端中,當前版本的檔案
在專案資料夾下右鍵TortoiseSVN/Repo-browser
Image 015.png

打開Repo-browser面板後,我們就可以看到遠端版控的資料夾底下的所有檔案
同時還能看到該檔案目前版號、上傳者…等資訊
如下圖,左側是本地端,右側是遠端
image-016

以上只是對版本控管一個基本的介紹認識
接下來有機會會再對比較常用到的功能寫幾篇心得文
總而言之,版本控管對於專案開發,不管是單人或是團隊都是非常重要
因為很重要,所以不能只說三次,要說三十次…很重要…很重要…很重要………XD

shibapower-logo_word

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s