可以使用TFS工作区而不必绑定到特定的计算机吗?

GWL*_*osa 8 workspace version-control virtualization tfs visual-studio-2008

所以我遇到了一个有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工作区定义可以"放松",这样它们就不会以某种方式在定义中包含机器名称.除此之外,如果有人知道上述问题的解决方案可以自动运行,或者用户干预有限,那也是理想的选择.

Jen*_*uak 7

首先,最明显的答案是将机器专用于用户.

其次......如果你真的想解决上述问题:

如果不将工作空间分配给特定计算机,则无法使用它们.这个假设隐含在产品中.但你可以欺骗它:)
警告:这个配方似乎工作,但我没有亲自运行使用它的项目.

  1. 为每个用户分配"虚拟"计算机名称,即UseridVM
  2. 对于每个虚拟机,需要以下(持久或启动脚本)设置:
    • 创建一个新的环境变量"用户变量",即_CLUSTER_NETWORK_NAME_ = UseridVM
  3. 很高兴:使用专用于用户ID的虚拟硬盘驱动器并映射(或使用脚本安装)到"D:",跟随用户从VM到VM.

现在,当用户打开Visual Studio时,工作空间将使用指定值"UseridVM"作为计算机名称,因此将在每台计算机上找到相同的工作空间.

如果您没有持久性虚拟硬盘驱动器,则每个用户必须确保在当天开始时执行"真实""获取最新"(获取特定版本,选中所有框),因为工作区会记住已经存在的文件已下载,如果它们已经存在,则不会重新下载它们.