2009-02-02 25 views
5

目前,我的團隊使用Visual Sourcesafe,並且非常熟悉GUI是多麼可怕,並且聽到互聯網搗蛋鬼是多麼不可靠,我一直在試圖推動SVN。在SVN或其他版本控制系統中複製Sourcesafe的鏈接能力?

今天我和經理談論了他支持的最終舉措,他問是否有可能在SVN中創建sourcesafe樣式鏈接。對於不熟悉sourcesafe的人來說,鏈接與Linux下文件鏈接的概念相同。我們使用它們來鏈接項目之間的共享代碼/庫。我解釋說,沒有辦法使用SVN創建鏈接,他提出這可能是遷移中的一個主要障礙。我告訴他,在我的本地SVN(我一直在放鬆我的開發,只在sourcesafe中定期檢查),我將共享代碼/庫放置在一個位置,並將ANT引用到該位置。但是,我瞭解到他對這個解決方案並沒有深刻的印象,因爲它增加了ANT任務的複雜性。就個人而言,我認爲在源代碼控制中有一堆鏈接文件需要稍微更復雜的ANT腳本,但它確實是您訂閱哪種範例的問題。

我很好奇開發人員是如何解決這個限制的,並且做了像Git和Mercurial這樣的新的源代碼控制系統的支持鏈接?

回答

8

調查svn:externals屬性。

+0

+1擊敗了我。這很好,因爲如果需要的話,您可以在其他服務器上引用其他回購 - 這是相當強大的 – 2009-02-02 17:30:00

3

我們使用TFS進行版本控制,而TFS也沒有VSS鏈接功能。我們已經消除了我們所有的鏈接文件。之前鏈接的所有類文件都已放置到類庫中,這些類庫在解決方案中作爲共享項目引用與我們的其他項目共享。所以本質上你共享庫,而不是類文件。

有一些調整過程習慣了這一點,但從那以後我沒有錯過任何鏈接。它確實通過讓你的代碼像這樣設置來促進更好的設計實踐。僅在一個項目中使用這些類有助於避免發生突變,因爲測試更改的影響要更容易(使用可能不知道是否導致編譯問題的鏈接)。當您不必擔心鏈接文件時,更好的源代碼控制系統的某些功能(如強大的分支和合並支持)也會更好。

-1

當源文件應該在不同平臺(.NET,Silverlight,.NetCF) 之間共享時,鏈接非常有用,因爲源文件可能相同,因此可以共享,但編譯庫不能在這些平臺之間共享。