仅获取 TFS 中的某些项目 Visual Studio

Only get certain items in TFS Visual Studio

我正在使用 Team Foundation Server,插入到 Visual Studio 2012

我们有各种各样的项目和解决方案,但很少需要在我们的本地机器上安装所有内容。

有没有一种方法可以使用 Team Explorer 仅通过一次单击(或尽可能接近)批量获取不同文件夹中某些解决方案的最新信息?

Development

Project 1 Get this

Project 2 Ignore this

Project 3 Get this

框架

Project 1 Ignore this

Project 2 Get this

...只需单击一下。

您可以做两件事

  1. 通过打开源代码管理资源管理器,右键单击文件夹树中的节点并从上下文菜单中选择 "Get Latest Version" 来获取目录结构的一部分。这将获取选定的文件夹和所有子文件夹。
  2. 直接从源代码管理打开一个 Visual Studio 解决方案。在源代码管理资源管理器中双击 SLN 文件。 Visual Studio 将获取解决方案及其项目引用的所有项目。然后,您可以通过右键单击解决方案资源管理器中解决方案树的顶部并从上下文菜单中选择 "Get Latest Version (Recursive)" 来获取最新的解决方案项目。

对于这类事情,我在桌面上的命令文件中使用 tf.exe。这样我只需要双击 .cmd 文件。它的额外好处是比启动 VS 快得多。

@ECHO OFF

SET DEVENVPATH2013=C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE

Echo Getting latest files...

REM Navigate to to Solution's mapped folder on local machine, e.g. for me it is D:\Socrates\Development, and issue a get against the relevant TFS folder for the Solution ($/Socrates/DEVELOPMENT)

D:
CD \Socrates\Development
"%DEVENVPATH2013%\tf.exe" get $/Socrates/DEVELOPMENT /recursive

REM Copy the above 3 lines for each separate Solution you want to Get Latest for


Echo Finished.
Echo.

顺便说一句,我猜您需要将 DEVENVPATH 编辑为 11.0 而不是 12.0

所以对于你的例子,假设你的本地文件夹映射直接在 C 盘下,你会想要这样的东西:

@ECHO OFF

SET DEVENVPATH2012=C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE

Echo Getting latest files...

REM Navigate to to Solution's mapped folder on local machine, e.g. for me it is D:\Socrates\Development, and issue a get against the relevant TFS folder for the Solution ($/Socrates/DEVELOPMENT)

C:
CD \Development\Project1
"%DEVENVPATH2012%\tf.exe" get $/Development/Project1 /recursive

C:
CD \Development\Project3
"%DEVENVPATH2012%\tf.exe" get $/Development/Project3 /recursive

C:
CD \Framework\Project2
"%DEVENVPATH2012%\tf.exe" get $/Framework/Project2 /recursive


Echo Finished.
Echo.

如果您设置一个指向您列出的文件夹结构根目录的工作区,并在该工作区中隐藏您不想要的文件夹,您只需在UI 它得到你想要的。

https://msdn.microsoft.com/en-us/library/gg490753.aspx