我们来自Visual Source Safe背景,正在尝试迁移到团队基础服务器2008.
我在理解如何设置源代码管理方面遇到了一些麻烦。请考虑下面图1中文件系统上的以下文件夹结构:
图#1:
C:\ SRC \ 01-发展
现在,让我们说在Proj1下,我有一个名为solution1的解决方案,它依赖于Proj2和Proj3中的项目。所以我在Proj1解决方案中所做的就是使用Visual Studio的“添加现有项目”功能将Proj2和Proj3添加到Proj1的解决方案中。现在我在Proj1的解决方案中拥有所有三个项目,使我能够修改代码,重新编译依赖项目等.Proj4,Proj5和Proj6与Proj1,Proj2和Proj3无关。
使用Visual Source Safe,这很简单,我们只需将Proj1,Proj2和Proj3检入源安全存储库,一切正常。
所以,现在我想为Proj1建立一个TFS团队项目。因此,在Visual Studio 2008中,我是新的文件/新团队项目,并在团队项目名称中键入Proj1,让它通过大约10分钟的内容,最后创建团队项目。在团队资源管理器下,有一个名为Source Control的节点。如果双击该节点,它将转到源控件资源管理器,我看到TFS服务器名称,并在其下面显示TFS项目名称(称为Proj1)。
问题#1: 现在,我想要做的是将Proj1,Proj2和Proj3文件系统文件夹添加到此团队项目中。因此,我右键单击Source Control Explorer中的Proj1节点并执行“将项目添加到文件夹”。然后,我从文件系统中选择Proj1,Proj2和Proj3,TFS将它们加载到Source Control Explorer窗口。但是,如果我将本地路径映射到C:\ src \ 01-development \ Proj1并执行最新操作,TFS将在名为Proj1的C:\ src \ 01-development \ Proj1文件夹中创建另一个文件夹,并且它将所有文件拉到那里。这不是我想要发生的事情。我希望TFS以与Visual Source Safe相同的方式使用我现有的Proj1,Proj2和Proj3文件夹。
有办法做我想做的事吗?
问题#2: 我已经使用过subversion,虽然它有它的怪癖,但我发现它比TFS更容易使用。我的老板虽然使用TFS已经死了,但我似乎无法摆脱它。他的理由是TFS提供了与subversion无关的项目管理集成。我只是想知道那些和你们一起工作过的人,有没有什么强有力的理由来使用其中一个?
答案 0 :(得分:1)
我做错的关键是尝试在主TFS项目文件夹之外设置源文件夹。我学到的是使用TFS,最好将所有内容保存在这个根伞文件夹下。
回到我原来的例子: C:\ SRC \ 01-发展
* Proj1
* Proj2
* Proj3
* Proj4
* Proj5
* Proj6
如果Proj1依赖于Proj2和Proj3,那么我可以使用这样的目录结构:
Proj1Root
现在,如果Proj2和Proj3可以在其他项目中共享(除了Proj1),那么我也可以为这些项目制作TFS项目,然后我可以将Proj2和Proj3“分支”到Proj1中。
现在我们有:
Proj2Root
Proj3Root
Proj1Root
然后我可以更改Proj2Root和Proj3Root下的代码,我可以稍后将这些更改合并到Proj1Root中(或者我可以选择不合并它们)。
无论如何,tvanfosson是对的,只是因为我对TFS并不熟悉而且让我的挫败感变得更好。我发布了这个答案,希望如果其他人对如何设置目录结构有同样的困难,也许这会有所帮助。
答案 1 :(得分:0)
如果您已从解决方案中将解决方案添加到源代码管理,而不是通过源代码管理资源管理器添加它,则它将使用您现有的文件夹结构。打开解决方案后,您只需右键单击解决方案并选择“将解决方案添加到源代码管理”。这会将解决方案中的所有项目添加到所选(或新创建的)源控制文件夹中。注意:您仍然需要首先创建团队项目。
您还可以通过转到Source Control Explorer来移动签出的树。从下拉列表中选择“工作区”,然后单击感兴趣的工作区并单击“编辑”。在编辑模式下打开工作区后,可以更改工作区映射到的本地文件夹。请注意,这将删除现有位置中的文件。
我建议您在生产代码上尝试使用某些测试项目之前先使用TFS。您可能还想查看MSDN上的Team System Developer Center,并在此时下载TFS Power Tools。
至于你的第二个问题 - 我实际上并没有使用TFS中的项目管理设施。对于我所做的事情,即使是TFS中的敏捷内容也是如此重要。我主要依靠每个项目的一组wiki来跟踪需要完成的工作。这并不是说工具不好,只是我没有任何直接的经验,只是因为它们不仅仅是我,主要是单独的开发人员需要。
答案 2 :(得分:0)
“您尝试添加到源代码管理的项目可能会导致其他源代码管理用户难以打开此解决方案或获取更新版本的解决方案。”
我认为这个警告很有说服力。似乎解决方案旨在容纳存在于其下的子项目(逻辑上和物理上在文件系统上)。从2002年开始,模式与实践团队的this文章似乎也表明了这一点。
话虽如此,我当然不太了解您的工作环境或您的需求,但我只想指出我看到的根本问题。