2011-11-18 32 views
2

從源代碼控制的角度來看,用戶對TFS和SVN的真正區別是什麼?從源代碼控制的角度來看,TFS操作與SVN相比如何?

例如:在SVN我們有基本的命令:

  • 退房
  • 出口
  • 提交
  • 更新
  • 刪除
  • 還原

而且每個文件都有自己的修訂版本號。

TFS是否也有這些命令?每個文件都有自己的修訂號?

請僅從源代碼控制角度回答。錯誤跟蹤,ALM和定價在這個問題上沒有受到威脅。

+1

在SVN ,版本庫有一個版本號,而不是每個文件 –

+0

你的意思是每個文件都有它自己的版本號在SVN中,同一個commit中的所有文件共享同一個版本號 –

+0

@Rob,Albin比我強:提交的每組文件具有相同的修訂版本號,如果您提交了一個文件,則會爲其分配修訂版號 – Machado

回答

2

我認爲主要的區別是,Subversion支持(只)一個真正的樂觀鎖定策略,這意味着你通常彼此並行工作,第二個(和後來的)必須合併他們的變化到其他人。

在TFS中,您必須先結帳,即保留文件以進行更改,以完成任何工作。這導致更加悲觀的鎖定策略。

是的,一個很大的區別是,脫機工作不是TFS的選項,並且完全受Subversion支持。

TFS在我看來更好地支持分支和合並(至少在這裏UI有很大的幫助)。

當提交/簽入時,TFS和Subversion具有相似含義的不同術語。(以下內容來自同時使用這兩種工具的同事。)

缺省值:修訂: 的SVN提交操作發佈改變到任何數量的文件和目錄,爲單一的原子交易 - >http://svnbook.red-bean.com/

缺省值:變更: 變更集是一個邏輯容器其中Team Foundation存儲與單個簽入操作有關的所有內容,具體爲:文件和文件夾修訂 - >http://msdn.microsoft.com/en-us/library/ms181408%28v=vs.80%29.aspx

簽入期間,每個文件都與CheckIn編號關聯(在S中計數ubversion)。如果您瀏覽文件夾/文件的歷史記錄,則可以將歷史記錄看成具有列的表格:changeSet Numbers/date/comment從我的角度來看,一個很好的功能是@Annotate函數。使用此功能,您可以在LOC級別上看到一個文件的更改集(第2-5行由changset 2更改「添加日誌記錄,第10行由changset 5更改」檢查空值「;-))

+0

+1,謝謝,此編輯文件之前的強制檢出/保留加上NO離線編輯是我想知道的那種差異,但是這些文件是否也有版本號,比如SVN?我可以通過某種方式查詢TFS來確定當前的數量 一份文件 ? – Machado

+0

我已將信息添加到類似的術語修訂和更改集。 – mliebelt

+0

「在TFS中,您必須先結帳,即保留文件以進行修改,從而完成任何工作,這會導致更加悲觀的鎖定策略。」 - 這並不妨礙多人編輯相同的文件,除了無法合併的二進制文件 「是的,有一大區別是,離線工作不是TFS的選項,完全支持顛覆。」 - 在2008+錯誤:http://stackoverflow.com/questions/313653/work-offline-in-team-foundation-server –

0

您列出的命令由所有源控制系統支持,因爲它們是任何SC必須具有的絕對最小值,甚至可以被視爲功能。

其實只有兩件事情之間決定時要考慮的,其中大部分被明確排除在你的問題......

的一點是,如果你煮TFS到只是源代碼控制系統那麼差異可以忽略不計。僅供參考,我已經廣泛使用(每年超過5年),目前只使用TFS,因爲附加功能被封裝在一個包中。

相關問題