2009-12-18 10 views
1

有人可以建議做以下的所有一個源代碼控制產品:C#源代碼控制,讓我擁有多個代碼分支的各種「版本」

  1. 無縫集成到VS 2008專業版
  2. 將允許我創建一個程序的不同「版本」(比如「express」和「pro」) - 也許有分支?
  3. 將允許我跟蹤特定客戶端請求的更改。假設我有四個客戶,2個是快遞,2個是專業客戶。我將能夠爲所有客戶端創建特定的自定義更改,同時仍保持單一的代碼庫。

我不確定像VisualSVN這樣的東西可以處理這個問題,但必須有一個產品。

+0

我運行的VisualSVN迷上了VS2008和VS2010beta - 根本沒有probs! :) – kiwipom 2009-12-18 02:53:46

回答

1

實際上,每個源控件都將滿足分支的#2和#3要求。

對於#1它更棘手。如果你真的想要一個無縫整合(大寫S),那麼Team Foundation Server是你唯一的選擇。 (這是非常昂貴的)

否則幾乎所有主要的源代碼控制系統都會有某種VS插件,但是插件通常不能很好地工作。

兩個最流行的免費源代碼控制系統:

+0

+1上面這兩個scm都非常值得學習和使用 – 2009-12-18 02:49:41

0

從以往的經驗,你只有當你需要檢查編輯之前的文件必須與Visual Studio集成它(a-la SourceSafe)並且該文件在此之前是隻讀的。

使用過SourceSafe後,我繼續使用SVN,絕對沒有回頭。然後我切換到git,再也沒有回頭看SVN或Sourcesafe。

我無法評論團隊基金會的源代碼管理或Mercurial,我從來沒有使用過這些。在這個階段,我會推薦Git over SVN,因爲它更適合於在大量分支之間進行細微更改的單一源代碼樹。你可以用SVN做同樣的事情,但發現將工作副本切換到另一個進程是痛苦的。

1

在所有不同版本中使用相同的代碼創建不同版本的軟件的最佳方法是使用預處理器指令根據您設置的標誌條件編譯您的軟件。

有關條件編譯的信息,請參見以下鏈接:

。NET:http://msdn.microsoft.com/en-us/library/9ae6e432%28VS.71%29.aspx

的Java:http://weblogs.java.net/blog/schaefa/archive/2005/01/how_to_do_condi_1.html

C++:http://www.devarticles.com/c/a/Cplusplus/C-plus-plus-Preprocessor-The-Code-in-the-Middle/3/

我希望這回答了你的問題開發不同版本的針對不同平臺的應用程序時,我用這個了很多。

一個例子是我在c#中爲服務器和移動設備實現開發的應用程序。在.NET庫中每個函數都有不同的調用函數的方法,但是邏輯相同,所以我使用預處理器條件編譯來編譯每個平臺的代碼,但保留完整的邏輯。

0

的Team Foundation Server提供了最佳的無縫集成到VS 2008,但當然它不是免費的(我同意,它非常昂貴)

你使用AnkhSVN試過嗎?它爲VS 2008和SVN提供了非常好的集成。到目前爲止,它給了我需要的VS-SVN集成,所以你可能想檢查一下它是否符合你的需求。

你可以使用TortoiseSVN,但我建議安裝CollabNet's SVN server,因爲AnkhSVN的與它無縫集成,再加上你不要擔心主要設備

0

這是隻有三個月,直到VS 2010是最終版本(3月22日, 2010)。對於MSDN訂閱者,TFS將被集成到Visual Studio(Express以外的所有級別)。包含Visual Studio(任何級別)的MSDN訂閱將包含帶有一個席位許可證的TFS。 TFS 2010將在Vista或Windows 7上運行。不再需要SharePoint,但如果您想要100%的TFS功能(如報告),仍然需要它。

它現在都可以在測試版中使用;我正在筆記本上運行TFS。