善用版本控制系統

如果你現在正與多人合作一同製作一條路線、列車、物件……的話,或許你會試過在你修改完一個檔案後才發現別人也在修改這個檔案,之後要慢慢比較不同版本的檔案作出取捨。有沒有想過其實是有更好的做法?使用版本控制系統就正好解決這個問題,讓製作過程更具效率。

甚麼是版本控制系統?

版本控制系統一般會安裝在一台伺服器中。它會追蹤專案中的每一個檔案的內容變動,當發現有變動時,軟件便會為這次修訂賦予一個編號,並記錄這個檔案目前的版本和上一個版本的差別。專案的成員可以檢視和還原檔案到先前的版本。除此之外,版本控制系統還會在專案的成員從伺服器的檔案庫 (Repository) 取出 (Check-out) 檔案時自動鎖上檔案,防止在有人正進行修改的期間讓其他人同時修改該檔案。當該成員修改完成後,便需將檔案放回檔案庫中(這動作稱為提交 (Commit / Check-in))。這樣就可以確保所有成員取得的檔案都是最新的版本。

應用範圍

版本控制系統主要都是在軟件開發時使用,檔案庫存放的是軟件的程式碼。不過版本控制系統並不只是適用於純文字檔案,圖片、文件等的檔案其實亦可以使用版本控制系統來管理。

版本控制系統其實還會結合在一些系統中,例如維基百科所使用的 Wiki 引擎 MediaWiki 亦有版本控制的功能。

將版本控制系統應用到 BVE 開發中

如果你的專案是由一人開發的話,那麼使用版本控制系統其實作用不大(除非你想保留不同的檔案版本以便隨時還原)。但如果你的專案是由多人開發的話,那麼版本控制系統便會很有用了。

一些版本控制系統的例子

在 Adobe Flex Builder 使用 Subclipse 來提交檔案。

Adobe Version Cue 服務器。

Adobe Version Cue Server 管理。

Adobe Drive 的界面。

CVSSVN 是比較有名的版本控制系統。不少集成開發環境 (IDE) 已經內置取出和提交檔案。你可以自行架設伺服器並安裝 CVS / SVN,網上亦有不少免費的 CVS / SVN 寄存服務。但使用寄存服務就要留意檔案庫的大小限制和速度。

而 Adobe Version Cue 是隨 Adobe Creative Suite 所附送。它對 Adobe 的軟件有較好的支援,而且還有 Adobe PDF 審查功能。你需要找一台電腦安裝 Version Cue 作為檔案庫,每個成員都需要安裝 Adobe Drive(Adobe Drive 隨支援 Version Cue 的 Adobe 軟件所附送)來存取檔案庫中的檔案。

至於 Syncplicity 和 Dropbox,它們都是網上同步的服務,嚴格來說它們都不是版本控制系統,但都有類似版本控制系統的功能。使用這些服務你無須自行架設伺服器,你的檔案會被上載到它們的伺服器中。你需要安裝它們的同步軟件來存取檔案庫中的檔案。但需留意檔案大小限制以及最多可同步的電腦數量。

其實還有不少版本控制系統可供使用,以上列出的只是一小部分。

優點和缺點

  • 每次修改檔案後無需經即時通訊軟件、電郵等途徑互相傳送檔案給其他成員。他們只需要自行到伺服器取得檔案。
  • 每個成員都會取得最新版本的檔案。
  • 需要一台電腦作伺服器。
  • 每個成員都需要安裝指定的軟件來存取伺服器的檔案。
  • 由於整個專案的檔案都存放在伺服器中,備份專案比較方便。

小貼士

  • 如果不是即時需要對該檔案作出修改,就不要取出檔案,避免其他成員不能修改該檔案。
  • 完成修改後,盡快提交檔案,讓其他成員能修改該檔案。
  • 提交檔案時要輸入修訂備註,以便其他成員和在還原檔案時能了解該版本的改動。
  • 定時備份檔案庫,避免回伺服器故障而損失資料。
  • 使用版本控制系統之前應與成員預先制定指引(例如檔案命名、資料夾結構、程式碼中的各類變量命名等),讓所有成員有遵循的依據。
  • 所有成員應使用相同的軟件(最好就連軟件的版本也要相同)來製作檔案,以便其他人亦能修改原始檔。就以處理點陣圖為例,如果一個成員使用 Photoshop、另一個就使用 Fireworks、另一個就使用 PhotoImpact 的話,原始檔案就不能被其他成員修改,這就會影響工作效率。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *