在工作中,我们在项目中使用NUnit,FxCop和其他一些第三方软件。现在我们将项目文件中存储的每个应用程序的项目文件存储起来,并且每个开发人员机器都安装了软件(嗯......目前只有一个,我)。
我们在几周内聘请了其他几位开发人员,并且我正在努力让事情变得更容易,更透明。
我读到将这些类型的软件安装到repo中,并将快捷方式复制/粘贴到桌面以运行gui是个好主意。这使得它可以很容易地更新到更新版本的软件(将它们安装到您的工作副本,在旧版本之上,然后提交更改)并且可以更新所有开发人员:下一个结帐将包括新版本的软件。
所以我想知道......
这是否像宣传的那样有效?有人试过吗?
另外,考虑到下面的存储库文件夹结构,如果你开发了多个软件,你是否在每个项目的Extras文件夹中安装了一个nunit副本,或者你是否安装了一个,只有一个存储库的Common文件夹用于所有项目? (后者让我觉得项目和工具之间存在逻辑和物理上的脱节,但前者意味着可能存在不同工具的重击,因为项目a使用nunit 2.4.5而项目b使用nunit 2.4。 8等 - 以及所有其他工具/版本)
Repository>Common
Repository>ProjectName>Extras
Repository>ProjectName>Trunk
Repository>ProjectName>Tags
Repository>ProjectName>Experiments
我不确定这最后一部分是否有意义......让我知道,我会澄清。
答案 0 :(得分:1)
我没有“安装”或将第三方工具放入存储库。它们在文件服务器上,但不在repo中。
通常,当我有多个版本的工具时,我通过在构建过程中设置环境变量来配置它们。
使用专用的构建计算机来帮助定义策略并限制开发人员的头痛。
答案 1 :(得分:1)
我们使用名为“Vendor”的文件夹(或项目)。我们所有的内部开发的依赖库以及任何工具都在那里。它位于源树的顶层。
答案 2 :(得分:1)
我们的开发团队正在使用虚拟机。因此,新的团队成员将获得已安装Visual Studio和SQL Server 2008 Express的VM。我们没有机会修改的这些商业工具不在我们的版本控制系统中。但是我们确实有关于VM映像上安装了哪些工具的版本化文档 使用开源工具Fitnesse,检入存储库效果很好。正如您所说,检查新版本并更新引用可以立即为团队升级。但是在这种情况下效果很好,因为没有工具安装过程 在我们的例子中,我们将xUnit,FxCop,ccNet等中间工具检入项目中。我们主要与一个大项目合作,所以一切都在它之下 对于以前的雇主,我们在存储库中有一个Common tools区域。由于不同的项目并非都希望同时切换到新版本的工具,因此需要将每个版本的工具都检入其自己的文件夹中。使存储库的这个区域与文件共享几乎没有区别。存储库控制的存储仍然有用。版本控制工具允许您指定“视图”以关闭所有需要的项目文件。