所以我遇到了一个有10个开发人员的项目。当每个开发人员进入当天时,他们会随机发布一台机器,用于当天的开发。机器名称不同,例如DEV01 - DEV10。在向开发人员发布这些计算机时,这些计算机是相同的,并且开发人员在白天不会对计算机进行任何更改(源代码更改存储在TFS中,而不是本地存储)。这些当然是虚拟机,但这与当前的要点并不相关。
问题是,每天早上,开发人员遇到3个问题:
1)分配给它们的机器可能与上次分配的机器不同。例如,DevMan A可能昨天使用了DEV04,并且今天收到了DEV06。他的工作区定义现在与DEV06相关联;他必须创建一个新工作区,或将旧工作区迁移到DEV04。
2)它们被分配的机器可能昨天一直在使用,并且某些映射可能会发生冲突。例如,DevMan A今天可能有DEV04,并希望创建一个工作空间,将项目文件夹映射到“C:\ MyProj \ Solution”。然而,DevMan B昨天有DEV04,他使用了相同的项目文件夹。 TFS现在抱怨。
3)这可能是他们第一次使用某台机器。他们现在需要为这台机器重新创建新机器的所有源代码控制映射。
所有这些问题都可以根据具体情况以直截了当的方式解决,但它从早上开始就削弱了一些生产力。我们更喜欢TFS工作区定义可以“放松”,这样它们就不会以某种方式在定义中包含机器名称。除此之外,如果有人知道上述问题的解决方案可以自动运行,或者用户干预有限,那也是理想的选择。
答案 0 :(得分:7)
首先,非常明显的答案是将机器专用于用户。
其次......如果你真的想解决上述问题:
如果不将工作空间分配给特定计算机,则无法使用它们。这个假设隐含在产品中。但你可以骗过它:) 警告:此配方似乎有效,但我没有亲自运行使用它的项目。
现在,当用户打开Visual Studio时,工作区将使用指定值“UseridVM”作为计算机名称,因此将在每台计算机上找到相同的工作区。
如果您没有持久性虚拟硬盘驱动器,那么每个用户必须确保在当天开始时执行“真实”“获取最新”(获取特定版本,选中所有框),因为工作区会记住什么文件已经下载,如果它们已经存在,则不会重新下载。
答案 1 :(得分:3)
1。)对于您要处理的每个工作站,您需要定义工作区(远程< =>本地映射)。您可以在网络上存储源文件(由于VS缓存而不建议这样做),但是特定用户需要在特定PC上存在本地工作空间(映射定义)。
2.。)为每个开发人员创建单独的本地文件夹,以防止在同一文件夹上工作的不同人员的混乱以及获取其他人的检出代码的最新信息。 例如:
c:\Projects\DevManA\...
c:\Projects\DevManB\... etc.
3。)这可能会引起很多讨论,但我建议将TFS的根映射到您当地的工作区,例如。 DevManA映射:
$/ to C:\Projects\DevManA\
然后当你检查项目时,你会得到结构:
c:\Projects\DevManA\TFSProject1\..
c:\Projects\DevManA\TFSProject2\..
c:\Projects\DevManA\TFSProject3\..
等
这是一个简单快速的映射,每个人都可以在5秒内完成,你准备好了。然后每个人在磁盘上都有相同的布局,就像在TFS中一样,也更容易“适应大脑”。
答案 2 :(得分:2)
我不知道这是否符合问题中所述的要求,但您可以查看:
http://blogs.msdn.com/granth/archive/2009/11/08/tfs2010-public-workspaces.aspx
TFS 2010添加了公共/共享工作区,可供同一台计算机上的多个用户使用。
答案 3 :(得分:0)
您可以将工作区放在共享网络驱动器上,因此开发人员登录的计算机(虚拟或其他)无关紧要。这样可以正常工作,但是您还需要配置一些一次的东西以保持它的快乐。