Subversion/Cruise Control/Nant/NUnit与Visual Studio项目和解决方案

7

我在一个由两个开发人员组成的团队中工作,目前我们使用VSS,并没有持续集成或每日构建以及很少的单元测试。

我想将我们的源代码控制改为Subversion,同时开始运行更专业的流程。

从我目前看到的情况来看,Subversion/cruise control/nant/nunit似乎是一个相当受欢迎的组合,我已经在一台备用机器上安装了这些工具。

我下载了Subversion手册,但其中一个工具就有400页长!

实际上,我只想使用已经在实践中被证明有效的模式快速上手,然后根据需要进行微调,随着对工具的熟悉度增加而逐步深入。

是否有人知道任何涵盖这些特定工具组合的基本要素的书籍/教程/指南,可以帮助我尽快上手?

5个回答

5

我已经使用subversion很多年了,必须说,最好的介绍在TortoiseSVN的帮助文件中。TortoiseSVN是另一个免费的Windows客户端,具有资源管理器集成功能。我强烈建议先阅读Tortoise的帮助文档,甚至比原始的subversion文档更好。必要时,它会引用官方文档。

Tortoise也恰好是我最喜欢的客户端。实际上,在大多数机器上,它是我唯一需要的subversion组件。它执行我经常使用的所有功能,包括存储库创建。虽然这不是对常规命令行工具的打击,我在大多数情况下也安装了这些工具,但我只发现cli工具对于脚本自动化和(偶尔的)存储库维护功能是必要的。

我正在重新设计我们公司自己的构建环境,所以我正在查看许多构建/开发工具的选项。以下是我可以推荐或来自他人的好推荐的工具:

WinMerge:高度推荐的免费差异工具,安装在TortoiseSVN之后,以获得最佳集成。我每天都在使用这个工具进行许多目的,包括开发之外的一些目的。

TeamCity:CI服务器,似乎已经非常成熟。我还没有尝试过这个,但它是领先的竞争者,比CC.NET更好,因为我有使用CC.NET(一年)和它收到的好评。Hudson是另一个好评的选项。

VisualSVN Server:建议使用免费的http(s)服务器进行SVN,具有AD集成以进行权限控制和microsoft风格的msc控制台。我刚刚在工作中实施了它,非常简单。如果您想要远程(IP)签入/签出、ssl加密、存储库挂钩脚本和其他基于服务器的功能,则必不可少。

VisualSVN:一个备受好评的Visual Studio插件,用于SVN。我还没有尝试过这个,但它被认为是一个无需考虑的购买。[编辑:根据我在overflow上读到的内容,AnkhSVN是一个免费的选项,可以达到相同的效果。]

SVN-Monitor:推荐的免费监视软件,可提醒您仓库中的更改。可以配置它监视的内容和它采取的操作。需要安装TortoiseSVN。

BugTracker.NET:推荐的免费问题跟踪服务器。具有SVN集成功能,可以将正在跟踪的问题与subversion版本关联起来。不确定TeamCity是否具有类似的功能,但我们已经在开发之外使用它来跟踪帮助台问题,并且对于免费软件而言非常好。

我没有.NET的单元测试、覆盖、文档工具方面的经验,所以无法评论。

我是一个Pythonista,因此我会提一个Python在SVN方面可能有用的东西,即您可以使用PySVN库执行任何过于复杂而无法使用命令行工具进行脚本化的存储库工作。我用它来创建标签,一旦构建准备好了就可以打标签和部署。

选择其中一些工具,你将走在游戏的前沿。然而,为它们开发流程并培训人员仍然是你的工作。 :)

我建议使用三向差异工具而不是WinMerge,后者只能显示文件两个版本之间的差异(而不能与原始版本相比较的文件更改)。我个人最喜欢的是SourceGear DiffMerge(免费下载)。 - Bert Huijben

2
我录制了 一个视频,介绍了所有基础知识,包括SubVersion、CruiseControl.NET的设置等。我甚至演示了一个编译失败的情况。开发工具使用的是Delphi,但也可以轻松地使用VS.NET。

我刚开始学习CI,看到了你的帖子和视频,对我很有帮助。如果你能列出一些最低服务器要求就更好了(看起来你用的是开发机),但这些都是我可以自己解决的。干得好! - Dave

1

如果你想快速搭建一个Subversion服务器,而不需要了解太多关于repo的知识,请查看Visual SVN 这里。它是一个GUI应用程序,可以让你设置repo,而无需阅读大量文档。还有一个关于它的dimecast 这里

至于与CC.NET集成,查找CC.NET文档中的subversion控制块 这里,他们在网站上很好地分解了它,并且你应该能够很容易地找到svn的xml标签。

你还应该考虑实现客户端工具,如Tortoise SVNAnkh SVN

关于NANT,请查看这些dimecasts here。这里有很棒的教程,可以帮助你有效地使用nant。


我建议使用Ankh SVN 2.0而不是Visual SVN。Ankh不仅免费(在两个意义上),而且使用微软的API进行源代码控制,而Visual SVN则通过插件将其组合在一起。如果您想了解这种差异的影响,请尝试重命名文件。 - Darcy Casselman
我同意,我只是建议使用 Visual SVN 作为一种存储库管理器。创建、删除、添加用户安全性、组等等。我不知道 Ankh SVN 2.0 是否具有这种功能? - Joseph
谢谢Joseph。我会去看看的 :-) - Martin Smith

1

由于您来自VSS背景,建议您看看SourceGear VaultSourceGear Fortress。如果它们符合您的需求,由于它们是为具有VSS思维方式的人设计的,学习起来会更快。

我认为它们甚至对小团队免费。

(您仍然需要使用nUnit进行测试,但我建议您先解决源代码控制和持续集成的问题。)

如果您选择Subversion,您会发现它非常稳定,并且能够满足大多数团队的需求。请查看TortoiseSVN以获取Subversion易于使用的UI界面。


谢谢,我已经听说过Subversion的好处了,也不介意摆脱VSS的思维方式 :-) 我明白你的观点,先解决SCC和持续集成的问题是很重要的,但我只是在列举我理想中的书籍内容。当然,这本书可能并不存在! - Martin Smith

0

这可能对问题并没有帮助,但是...

我不是说没有这样的手册...但即使你有了这个手册,你还需要学习很多。在考虑将它们全部组合在一起之前,你真的需要先学习每个部分。


我明白你的观点,但我认为仍然有常见的集成方案/模式吧?也许我有点过于乐观了,希望能找到一个恰好涵盖这个完美组合的资源! - Martin Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接