I recently needed to test a new checkin policy that I wrote. In order to do that, I needed to enable a checkin policy for the unit test’s team project using the version control API. I was a little surprised when it wasn’t quite as obvious as I had hoped, and I had to poke around in the source to figure it out. So, I thought I’d post the code snippet.
using Microsoft.TeamFoundation.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
TeamFoundationServer tfs = new TeamFoundationServer(http://yourserver:8080);
VersionControlServer vcs = (VersionControlServer) tfs.GetService(typeof(VersionControlServer));
TeamProject tp = vcs.GetTeamProject(“SomeTeamProject”);
MyCustomPolicy customPolicy = new MyCustomPolicy();
bool foundPolicy = false;
foreach (PolicyType policyType in Workstation.Current.InstalledPolicyTypes)
{
if (policyType.Name == customPolicy.Type)
{
tp.SetCheckinPolicies(new PolicyEnvelope[] { new PolicyEnvelope(customPolicy, policyType) });
foundCustomPolicy = true;
break;
}
}
if (!foundCustomPolicy)
{
throw new ApplicationException(“Something’s wrong — MyCustomPolicy is not installed“);
}
tags: tfs, team foundation, version control, checkin policy
0 comments
Be the first to start the discussion.