【发布时间】:2012-05-13 01:00:41
【问题描述】:
我想在特定时间(变更集)获取项目的源代码。所以我需要下载整个文件夹。我想在不同的时间做这件事,处理不同的工作空间不是很方便。
我知道TFS Get Specific Version into separate folder(带有工作区)和Need command to get a file from TFS without a workspace(一个文件)。
在不创建新工作区的情况下,是否有针对整个文件夹的解决方案?
编辑 我发现公认的答案过于雄心勃勃。我需要一些更简单的东西。
假设:
- 我可以从计算机上的 Visual Studio 访问 TFS
- 我想从文件夹中获取
ChangeSetNumberChangesetDesiredFolder在 TFS 项目中tProj
我从 Visual Studio 命令提示符中的目标文件夹运行以下批处理
set workspace_name=TemporaryWorkspace%username%
set changeset= ChangeSetNumber
tf workspace -new %workspace_name% -noprompt
tf workfold -map $/tProj . -workspace:%workspace_name%
tf get $/tProj/DesiredFolder -version:C%changeset% -recursive -noprompt
tf workfold -unmap . -workspace:%workspace_name%
tf workspace -delete %workspace_name% -noprompt
启动下载的解决方案时需要确认删除源代码控制关联。
【问题讨论】:
-
你能解释/详细说明“为不同的时间做这件事”吗?
-
@Nockawa:也许应该有不同的变更集。我只需要研究它的行为方式是否以及为什么与以前不同。
-
您能解释一下为什么使用工作区进行操作不方便吗?如果您设置了工作区并且想要将整个项目同步到变更集 150,您可以使用一个命令来执行此操作:“tf get /version:150”。
-
@TaylorLafrinere:我有与当前开发分支同步的工作区,以及以前版本的分支。不,我需要一些临时的,最好是独立于 tfs 的东西来研究旧版本的行为。任务完成后我删除。如果我不喜欢其他东西,我会下载到另一个文件夹。不应该有通往 Tfs 的反向路径。但也许我没有正确理解工作空间范式。
标签: command-line tfs tfs-sdk visual-studio-macros