- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们正在考虑将 TFS 用于我们基于 .NET 的项目并将其作为任务管理平台。一些团队专门使用 Java 进行开发,他们对 SVN (Subclipse) 非常满意。
我们的经理提出了以下问题:
目前,出于可维护性的原因,我们正在寻求使用 TFS 作为唯一的源代码控制平台。我们希望避免让我们的 IT 人员支持多个系统。
谢谢
最佳答案
完全披露,我在为 TFS 编写 Java 工具的团队工作,因此请将此答案视为适当的偏见 :-)
就 TFS 而言 - 所有代码都是平等的。它只是检查到版本控制的文件中的字节。像所有 SCM 系统一样,它并不关心文件是用什么语言编写的。
微软提供了一个完整、丰富的TFS Plug-in for Eclipse (称为 Team Explorer Everywhere)。这提供了从基于 Eclipse 的 IDE 到 TFS 的完整源代码控制、工作项跟踪、构建、共享点、报告访问等。它是 100% 用 Java 编写的,直接与 TFS 公开的 Web 服务对话。
此外我们还提供cross-platform command line client for TFS这样您就可以在您选择的操作系统(Mac、Linux、Solaris、HP-UX、Aix 等都完全支持)上从命令行与 TFS 对话。
最后,如果您有用 Java 编写的工具想要与 TFS 通信,那么他们可以使用 TFS SDK for Java这是我们用于创建 Eclipse 集成和跨平台命令行客户端的完整 API,但它与示例和代码片段打包在一起,可供您随应用程序重新分发。
在构建方面,您有多种选择。如果您想坚持使用当前的构建服务器,那么它很可能已经支持与 TFS 通信(所有流行的开源构建服务器都支持)。除此之外,微软还提供 TFS Build Extensions它允许您在 Team Foundation Build 服务器上运行基于 Ant 或 Maven 的构建。如果您在构建过程中执行 JUnit 测试,构建结果(连同任何警告或错误)将连同任何 JUnit 测试数据一起发布回 TFS。您还可以在 Eclipse IDE 中创建和管理构建定义,并在一个地方管理对它们的访问等。
所以 - 对 Java 的支持水平非常高,微软在这一领域表现出持续的投资。我们最近运送了一些 TFS 2010 Power Tools for Eclipse我们还与 Team Foundation Server 11 一起发布了 Team Explorer Everywhere 11 的预览版(我们是公司内部的同一个团队)。
要从 SVN 导入历史记录,这与将历史记录从任何 SCM 工具导入 TFS(或将 TFS 导入任何 SCM 工具)相同。你有几个选择。您可以拍摄快照并在特定时间点(例如发布)切换,也可以迁移历史记录。要从 SVN 迁移历史,有一些可用的合作伙伴解决方案,包括来自 Timely Migration 的解决方案。我看到很多客户都取得了成功。
希望对您有所帮助。
关于java - 用于 Java 的 TFS - 坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232144/
如果一种编程语言允许创建数据库表,但只允许将一个字段用作索引……那会有多大限制?我不是真正的数据库程序员,所以我想知道这样的系统是否可以用作正式数据库的基础,或者只是一个玩具。 最佳答案 那将是极其有
希望高手能解惑。非常高的概述是我不是编码的初学者,但对 OOP 还是新手。这组消息类是我们正在编写的一个大型模拟应用程序的核心,我不想愚蠢地这样做——这个接口(interface)将应用程序切成两半,
我将我的应用程序的资源保存在一个单独的 DLL 中,并在我的主 EXE 中使用 App.xaml 中的类似内容引用它们:- 当我编辑主 EXE 项目中的窗口时,VS2010 设计器无法识
我是颠覆的新手。最近,我在两个不同的分支中进行了一些开发,其中一个分支是另一个分支的分支。我已经将一些更改从第一个分支合并到主干。然而,当尝试将其他分支的更改合并到主干时,一切都变得困惑。也就是说,我
我正在查看不久前编写的一些代码,这让我非常紧张。问题中方法的大致形状是这样的; public Task Foo(...){ SyncMethod(); SyncMethod(); .
这部分是风格问题,部分是正确性问题。提交以下示例(处理包含嵌入式 header 的数据 block 的类的精简版): class Foo { public: Foo(size_t size)
说吧。如果我在我的系统上注册了 1,000,000 个用户,并且我有一个包含 500 个名称的列表。 我想将这些名称与我系统上的用户数量进行交叉检查,以查看哪些名称/用户已在数据库中注册。 这样的过程
在 PHP 应用程序中,在对象的析构函数期间运行我的保存代码是不是一个坏主意?我之所以问,是因为如果没问题,那么我可以在父 Model 类的析构函数中添加一个 save() 调用,这样就省去了内存其他
我们的测试套件中需要一些全局一次性设置代码。我们可以多次这样做,但这需要相当长的时间。 所有灯具都需要它,因此[TestFixtureSetUp]不起作用。它必须在所有 [TestFixtureSet
对于我网站的后端,只有少数人可见,我有一个系统,通过 ajax 与 php 进行通信,如下所示: function ajax(url, opts) { var progress = false
我在互联网上闲逛了一下,缺乏发现让我猜测是的,但是使用数组来填充 JMenuBar 的项目不是一个好主意吗?我也认为是的,因为每当你想知道“这是一个坏主意吗?”通常是这样。然而,我对编程的新手让我怀疑
我正在开发一个应用程序,其中方向(向前/向后)的概念非常重要。 问题是在整个代码库中存在着几种不同的约定:在某些地方它是 true/false,而在其他地方则是 +1/-1。 为了尝试将它们组合在一起
在我们的一个项目中广泛使用的包含文件中,我们有这些方便的常量: const double kPi = asin(1.0) * 2.0; const double kPiHalf =
我刚刚意识到我可以定义自己的 Prelude 模块并仔细控制它的导出。 这被认为是不好的做法吗? 优点: 无需在大型项目中重复导入“通用”模块。 无需写“导入前奏隐藏(catch)”。 最佳答案 一般
我有一个实体,使用 DateTime 作为 Id 似乎很合适,但是我有一种奇怪的感觉,它可能是一个糟糕的想法(虽然我无法想出任何合乎逻辑的理由来说明为什么), 这是一个不可变的对象(即一旦记录了值,它
我正在尝试编写一个元素制作系统,我可能希望有一天将其放入游戏中。有 Recipe 指定他们需要的成分和他们生产的东西。 我希望食谱具有灵 active ,这样它们只需要种类繁多的配料,而不是一种确切的
现状 想象一下: 有一个这样的枚举: enum State{ INITIAL{ @Override public void proceed(){...} }, NEXT_S
常识是,仅仅因为您可以扩充原生类型,并不意味着您应该。 扩充原生类型原型(prototype)始终不是一个好主意,唯一的异常(exception)是 ECMAScript 规范中的 polyfill
我不是经验丰富的 iPhone 用户,所以我有一个关于在我的应用程序中处理纵向/横向布局的好方法的问题。 问题是我当前的 UI 设计方式不太适合横向布局/不可用。那么,这是 iPhone 应用程序强制
我正在使用一个类别将 +load 添加到 UIResponder,这样我放在一起的 Cocoapod 就可以得到一个 didFinishLaunching使用 Cocoapod 的人无需修改他们的 a
我是一名优秀的程序员,十分优秀!