我正在尝试获取一个特定文件夹的最新信息,并想知道我将如何做到这一点。我一直在阅读有关Workspace类的MSDN文档,但不幸的是,它似乎没有提供任何关于如何获取特定文件夹的最新信息的信息。
例如,我只有一个工作区,但有多个工作文件夹。我的PowerShell脚本可以获得最新的,但只能在工作区级别。是否可以从工作目录级别或特定文件夹级别获得它?
提前谢谢你,DS。
编辑我相信这是可能的,因为电动工具可以通过右击文件夹和获取最新的。理想情况下,想要复制这个。
http://msdn.microsoft.com/en-us/library/Microsoft.TeamFoundation.VersionControl.Client.Workspace.aspx
下面是我的剧本。
$tfs = .\tfs-get-instance.ps1 -uri $uri
$vcs = $tfs.TfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
[psobject]$workspace = $vcs.GetWorkspace([System.Environment]::MachineName, [System.Environment]::UserName)
$workspace.Map($sourceFolder, $localFolder)
$result = $workspace.GetLocalItemForServerItem($sourceFolder);
if ($result -ne "")
{
echo $result
}发布于 2014-02-25 18:03:23
您应该能够使用Workspace.Get方法(String[],VersionSpec,RecursionType,GetOptions)来获得您想要的东西。
另一方面,如果您不一定要使用.NET对象来完成它,您可以让tf.exe完成实际工作,如下所示:
& $TfExePath workfold /map "$codePath" "$LocalFolderPath" /collection:"$tfCollection" /workspace:$workspaceName
& $TfExePath get "$codePath" /version:$ChangeSet /force /overwrite /all /recursive $workspaceName另一方面,如果安装了TF PowerTools,则还应该有用于使用TFS的PowerShell cmdlet。我从未使用过它们,但我猜如果您愿意的话,您应该能够使用它们而不是使用tf.exe。如果电动工具满足您的需要,我可能会选择PowerShell cmdlet。
https://stackoverflow.com/questions/22021198
复制相似问题