12

我们有 6 名开发人员,目前使用带有 SVN 和 Visual SVN 的 Visual Studio 2008 Professional。一旦 vs2010 发布,我们将从 vs2008 pro 升级到 vs2010 Premium。

但是,如果 Team Foundation Server 在 vs2010 高级版中包含适当的源代码控制,那么使用它确实有意义。我们喜欢 SVN,但更喜欢工具的紧密集成。

在 Internet 上,关于 SVN 与 TFS 2010 的信息似乎很少。因此我的问题在这里。

编辑:这个视频看起来非常引人注目。这是营销谈话还是真实的?

谢谢大家的回复!我非常欣赏这一点。更多背景信息。

这是我们当前的堆栈;vs2008 pro、Visual SVN、SVN、Jetbrain Teamcity。我的主要问题是我们使用了许多来自不同供应商的工具,它们或多或少地集成在一起。有时更多,大部分时间更少。至少正确设置它需要很多时间。

我们目前不使用分支,但我们想要。因此,我们必须从头开始设置 SVN(我们仔细研究过)。所以让我重新提出我的问题:我们应该设置 SVN 还是开始使用 TFS?

4

14 回答 14

18

根据我的经验,TFS 作为源代码控制服务器并不是正确的选择。合并非常慢,签入过程违反直觉,通常以只有管理员才能解锁的锁定文件结束。SVN 更加成熟、灵活和快速。

于 2010-01-03T10:28:44.677 回答
16

如果您是 Microsoft 商店,那么 TFS 非常适合。

如果 Subversion 能满足你的所有需求,你会修复没有损坏的东西吗?

你必须有改变的理由。

[我在工作中使用 TFS,它运行良好,几乎没有问题。我在家里使用 Subversion,只是因为我需要更少的基础设施]。

更新 [2012/05/01]:如果您不是 Microsoft 商店,那么 Git 和 mercurial 现在将是首选工具。

于 2010-01-03T10:29:55.207 回答
15

似乎有很多人建议切换到 TFS,我想另辟蹊径。

我从以前的工作中使用 SVN 转到最近工作的 TFS。我总结如下:

集成很有吸引力,没有其他东西可以将这么多部分集成在一起。权衡是这些单独的部分中的每一个都很糟糕。

更多详情:

源代码控制系统,虽然在服务器等技术上非常好,但使用起来很痛苦。文件始终标记为只读,您必须明确签出它们才能编辑它们。这会让你的生活变得糟糕,除非你 100% 的时间都在使用 Visual Studio 集成......如果你正在使用 Visual Studio 集成,请记住它将所有文件的 SCC 状态存储在 CSPROJ 文件中,所以要准备处理偶尔的混乱和失败,因为您将文件添加到 TFS,但 Visual Studio 尚未意识到这一点(反之亦然)。

错误跟踪系统搜索能力差且有限,用户界面难以使用。它让我想起了很多旧的访问数据库表单。将此与一个漂亮干净的基于网络的跟踪器进行比较,它是白天和黑夜。

总的来说,大多数 UI 的可用性都很差。虽然您可以使用 TFS 完成很多事情,但它不会很快,而且您必须单击太多的组合框!

此外,TFS 与您的域紧密集成。如果 100% 的员工和所有构建/测试机器都在同一个域上,那么这可能很好……但如果你不是,那么这会给你带来一些痛苦。

于 2010-05-02T23:54:16.243 回答
9

SVN 做源代码控制。它的默认客户端是命令行,但存在 GUI 工具。

TFS 为管理人员提供源代码控制、错误/问题跟踪、自动构建、报告,并且可以治愈男性型秃发。它的默认客户端是 Visual Studio。

如果您想要只是源代码控制,那么 SVN 可以工作,为什么要更改未损坏的内容。如果您只想更紧密地集成到 Visual Studio 中,请查看AnkhVisualSVN

如果您想要自动构建、持续集成、签入策略和规则、报告、问题跟踪,并且您希望这一切合二为一,那么 TFS 适合您 - 假设您不冒险使用 Microsoft 开发工具(通常 - 有用于其他 IDE)。您可以使用其他 FOSS 工具获得相同的东西,并用胶带将它们包裹在 SVN 周围,这也可以,但它不是无缝的,需要更多的投资。

但是,您将源代码控制系统与开发生命周期管理工具进行比较。TFS 进行源代码控制,但它的功能远不止于此。

于 2010-01-03T11:45:55.327 回答
8

真的,你应该用一个新的、测试的系统来评估它。很多人讨厌 TFS,有些人认为它不适合他们的工作方式。此外,当您必须开始购买更好版本的 VS 以获得您上瘾后想要的附加功能时,它也不是那么免费。

网上有一些不是 MS 营销人员的评论表明 TFS 并不是自 git 以来最好的东西。Martin Fowler 的一项调查非常有趣(在 54 份回复中,没有人认为它很棒甚至很好)。也许他的读者不像大多数开发人员那样热衷于“全生命周期”开发工具,但是,也许他们和我们其他人一样。有类似的评论可用——包括Forrester Research 的文章(我读过:执行摘要,SVN 是独立 SCM 的“胜利”)

所以,仅仅因为 TFS 现在包含在 VS 中并不能使它成为最好的。您需要在切换之前对其进行正确评估。

于 2010-05-02T23:37:23.300 回答
7

我在必要时使用了 TFS,并且讨厌它的每一分钟。它只是阻碍了我太多,而且远程做任何事情都需要很长时间。但主要是我的非理性仇恨。如果您的六个程序员中有一个像我一样,那么您将遇到问题。程序员比工具更重要。

于 2010-01-03T11:44:26.750 回答
2

我是一名 Java 开发人员,但我所有的朋友都是 .Net,他们似乎都更喜欢带有 Tortoise 的 SVN。SVN 也得到了开源社区的大力支持。

于 2010-01-03T10:53:06.340 回答
2

我认为 TFS 很棒。将错误跟踪和源代码控制与 Visual Studio 完全集成可以节省大量时间。在线协议不太健谈,因此它也适合在需要时通过 Internet 工作。

还有许多其他有用的功能,例如团队门户、统计跟踪、跟踪测试历史、捕获测试输出作为错误的一部分(非常方便!)等。

它们还具有对脚本、自动构建、在 Visual Studio 之外使用的独立 TFS 客户端(例如由非开发人员)的完整命令行支持,以及与第三方工具(例如用于混合 Java/.NET 商店的 Eclipse)的可选集成。

主要的缺点是价格——但如果你能负担得起,我认为它是目前最好的系统。

于 2010-01-03T11:21:24.223 回答
2

如果您仅将其用于版本控制,请坚持使用 SVN。如果您有 Linux/Java 解决方案,请坚持使用 SVN。如果您只是 MS,并且您喜欢使用工作项进行需求/错误跟踪等(我确实喜欢),请考虑迁移到 TFS,但请记住您需要为 CAL 预算,以便人们可以访问此信息。如果您想要通宵测试/CI 构建,请记住为您的构建服务器预算额外的 VS 许可证,因为 teambuild (msbuild) 无法构建 VDProjs、英特尔项目等。

还... TFS“似乎”/“似乎”在处理一些非常基本的事情时遇到了困难,例如如何忽略您不想放入存储库中的文件,并且它经常将文件标记为已更改,差异显示为相同。

于 2011-06-27T12:51:01.653 回答
1

这更像是一个心理问题,而不是技术问题。

在我看来,您不应该迁移并保持简单。只有 6 名开发人员,即使是高级 TFS2010 功能的一部分,您也不会得到足够复杂的东西。

VisualSVN 是一个很好的工具,可以让你足够“集成”。而且它会得到更好的改进。

于 2010-01-03T10:49:13.713 回答
1

尽管可能会帮助您做出决定;我同意米奇的观点。你必须有充分的理由去改变。SVN 比 TFS 成熟可靠。另外,与 SVN 的范围相比,TFS 主要针对 Microsoft 应用程序,而 SVN 的范围远远超出了 TFS。

于 2010-01-03T11:04:24.520 回答
1

我的上一个客户有 TFS,现在我的新客户有颠覆,而且很糟糕。没有货架是真正的杀手。

我有没有提到它在 VS 2010 中是免费的

于 2010-04-13T18:45:41.280 回答
1

我使用过 TFS 2010 和 SVN(与 Tortoise)、Mingle、MediaWiki 等。

尽管 TFS 为您提供了与 Visual Studio 的 Source Safe 风格集成,但这就是细节的结束。SVN 在版本控制方面要好得多,Mingle 是更好的协作工具,而 MediaWiki 是更好的 wiki。

如果您需要测试 TFS 的主要产品作为源代码控制,然后创建几个 TFS 项目,添加一些更改并尝试恢复到以前的版本。您将需要一个命令提示符工具,如果您在遵循伪劣的在线说明后碰巧回滚了正确的项目,它将会是纯粹的外观。

于 2010-11-19T09:55:47.730 回答
0

在我工作的地方,让团队从 DOORS 迁移到 TFS,主要是为了满足需求、规范等。他们仍然使用 Perforce 作为存储库。我已经使用了大多数存储库,每个存储库都有自己的怪癖。

回答您的问题-您要解决的问题是什么?您是否需要一个集成的解决方案来管理您的文档、错误和源代码控制?TFS 为您提供了集成部分,因此每次您签入代码时,您都可以将其标记回错误、需求、规范。如果您的公司使用大量流程,这是一个很棒的功能。在我看来,你是一家小商店,你真的不需要那种过程。我会坚持使用有效的方法,直到您变得更大并且您的需求发生变化。

于 2011-06-24T17:27:46.500 回答