完全披露,我在为TFS编写Java工具的团队中工作,因此请将此答案视为适当的偏见:-)
就TFS而言 - 所有代码都是平等的。它只是文件中的字节,它签入到版本控制。像所有SCM系统一样,它并不关心文件是用什么语言编写的。
Microsoft 为 Eclipse 提供了一个完整、丰富的 TFS 插件(称为 Team Explorer Everywhere)。这提供了完整的源代码管理,工作项跟踪,构建,Sharepoint,报告访问等,从基于Eclipse的IDE到TFS。它是用100%Java编写的,并直接与TFS公开的Web服务进行通信。
此外,我们还为TFS提供了一个跨平台命令行客户端,以便您可以在您选择的操作系统(Mac,Linux,Solaris,HP-UX,Aix等)上从命令行与TFS进行通信。
最后,如果您有用Java编写的想要与TFS通信的工具,那么它们可以使用TFS SDK for Java,这是我们用于创建Eclipse集成和跨平台命令行客户端的完整API,但与示例和代码片段打包在一起,并准备与应用程序一起重新分发。
在构建方面,您有几个选择。如果你想坚持使用当前的构建服务器,那么这可能已经支持与TFS通信(所有流行的开源构建服务器都支持)。除此之外,Microsoft 还提供了 TFS 构建扩展,允许您在 Team Foundation Build 服务器上运行基于 Ant 或 Maven 的构建。如果在生成过程中执行 JUnit 测试,则生成结果(以及任何警告或错误)将与任何 JUnit 测试数据一起发布回 TFS。此外,您还可以在Eclipse IDE中创建和管理构建定义,并在一个地方管理对它们的访问等。
因此,对Java的支持水平非常高,微软在这一领域表现出了持续的投资。我们最近发布了一些 TFS 2010 Power Tools for Eclipse,我们还发布了 Team Explorer Everywhere 11 的预览版以及 Team Foundation Server 11(我们是公司内部的同一个团队)。
要从 SVN 导入历史记录,这与将历史记录从任何 SCM 工具导入 TFS(或 TFS 导入任何 SCM 工具)相同。您有几种选择。您可以拍摄快照并在特定时间点(如版本)进行剪切,也可以迁移历史记录。要从SVN迁移历史记录,有一些合作伙伴解决方案可用,包括一个来自及时迁移的解决方案,我已经看到很多客户都取得了成功。
希望有所帮助。