2009-12-18 85 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。