This post may be helpful for the people who are looking to get the content of a given label in a Workspace.
I looked for the code snippet on the internet unsuccessfully, to finally ask for help on the TFS Forum.
VersionControlLabel[] labels = sourcecontrol.QueryLabels(labelname, "$/", tfs.AuthenticatedUserName, false, null, null, false);
if (labels.Length>0)
{
LabelVersionSpec lvs = new LabelVersionSpec(labels[0].Name);
workspace.Get(lvs, GetOptions.None);
}
As you can see, it’s really simple once you know about the LabelVersionSpec class and that you can use it with the Workspace::Get(VersionSpec, GetOptions) method.
There are several classes that derive from the VersionSpec one:
· ChangeSetVersionSpec, to get the content of a given changeset into your workspace.
· DateVersionSpec, to get the content that were checked in until the given date.
· LabelVersionSpec, to get from a label.
· LatestVersionSpec, to get the latest version.
· WorkspaceVersionSpec, to get the content of another Workspace.