那些年我在使用TortoiseSVN

TortoiseSVN簡稱SVN,是一款集中式版本控制軟件。項目使用中我們還經常會聽到hg和git的分布式版本控制軟件。 下面讓我舉例來說說我對使用過的svn的認識以及分析其他兩個軟件的不同之處與優勢。 svn最大的特點就是需要有一個集中的版本控制中心,所有人員提交代碼都將提交到中央服務器中。

  • 開發人員擁有本地拷貝并且可以在線下工作.
  • 在本地文件系統上可以進行快速的構建.
  • 可以快速的重構.
  • checkout和checkin的速度都會非常的快.
  • 終于有了原子提交.
  • 輕量級的Branching和Tagging操作.
  • 基本的合并操作.
  • 個人/本地的branching操作仍然需要再次checkout.
  • 因為仍然是集中式的,而不是分布式的.
  • 基本的合并點追蹤.
  • 沒有辦法合并重命名文件,需要在提交前使用一些擴展的跟進沖突解決機制.
  • 代碼庫有時會崩潰,專家/開發人員比例已經很低,如1:100.
其中提到的個人/本地的branching操作任然需要再次checkout的,所以當服務器連不上的時候,有時候是很痛苦的。本地的數據版本管理不了。我們項目中有時候還會出現代碼的沖突,所以這就要求團隊必須要分工明確,各施其職,盡可能每個人在code的時候不要在相同的地方。不然經常出現沖突和合并上的錯誤的。(當然這個是可以避免的,這就需要團隊的協作和溝通了) 使用SVN是簡單的,你要上手是非??斓?。 Subversion提倡單一的中央代碼庫模型,不提倡大規模的branching.在一個使用持續集成的環境中,其實也就是我們每天工作的環境,這個模型是非常合適的.這也是Subversion為什么這么流行,應用范圍這么廣的原因之一. 另外svn還對二進制的有很好的支持。 在某種特定情況下,SVN也有其相應的優勢,如果你需要對版本控制系統難以合并的二進制文件(如word文檔或者ppt)進行管理的話,你就應該回 退到獨占式checkout的鎖機制下,這就需要一個集中式的系統.另外,SVN更容易上手:你有一個代碼庫,所有的更改都指向這個代碼庫,如果你知道如 何創建,提交以及checkout,那你就可以開始使用它了,而像branching,更新這些操作在使用過程中自然也就慢慢熟悉了.SVN擁有一些非常 好用的客戶端軟件,而且幾乎所有的主流IDE都有與SVN集成的插件,這些都能夠為你使用SVN提供很大的幫助. 下一篇文章將介紹我去了新公司后使用了TortoiseHg分布式版本軟件的一些心得。