2008-10-01 29 views
6

我們正在從SourceGear Vault切換到VisualSVN for Visual Studio集成的TortoiseSVN - 絕對喜歡它。但是,我們在多個不同的應用程序中引用了多個類庫,這些應用程序不是任何應用程序中工作拷貝根的一部分。處理這個問題的最好方法是什麼,以便我們可以繼續使用Visual Studio集成,但仍然將各種類庫存放在每個項目/應用程序根目錄之外? SourceGear沒有這個問題。VisualSVN和類庫不在工作拷貝根

可以在資源管理器中單獨使用TortoiseSVN來分別添加類庫,但是無法在Visual Studio中提交工作副本之外的任何更改;在工作副本類庫之外,也沒有VisualSVN「紅綠燈」指示這些狀態。

順便說一句,我們也將與「多個項目的一個存儲庫」路線而不是多個存儲庫,特別是因爲這是我們多年來一直工作的方式。

UPDATE:

我重新讀了一些東西,我在之前就看了一下,發現SVN:外部對象不只是指使用不同的代碼庫,而且還可以用來使用多個工作副本在VisualSVN中。

http://www.visualsvn.com/support/topic/00007/http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html

然而,這是處理這個問題的最佳方式?有一個經歷過事情的good thread,但並沒有完全解決問題。

因此,使用svn:externals與否?是否使用多個存儲庫?多年來,我們一直在多個解決方案/應用程序中引用共享類庫中的代碼,這對我們很有用。現在如何最好地使VisualSVN的這個工作?

回答

4

找到了最好的答案here

引用的工程

有時是構造是做出來的多個不同檢出的工作拷貝是有用的。例如,您可能希望不同的子目錄來自存儲庫中的不同位置,或者可能來自不同的存儲庫。如果你希望每個用戶都有相同的佈局,你可以定義svn:externals屬性。

而且here

包含一個普通的子項目

有時候你希望在你的工作副本中的另一個項目,或許是一些庫代碼。您不想在存儲庫中複製此代碼,因爲那樣您將失去與原始(和維護)代碼的連接。或者也許你有幾個共享核心代碼的項目。至少有3種處理方式。