I recently got this error while trying to create a branch from that its parent was renamed.
Here's an example of what happened:
- A branch was created at: $/Project/Folder1/Branch1.
- Some work has been done on Branch1 so its history contained several change sets.
- Folder1 was renamed to Folder2 ($/Project/Folder2/Branch1).
- A branch operation failed while trying to create one from a change set before the rename operation with the error: "No matching items found in $/Project/Folder2/Branch1" (A branch operation on a change set created later than the rename operation will succeed).
I thought that the rename operation has broken the branch history. Looking at the branch dialog I saw that the source branch text box is read only and I thought to myself what would have happen if I had changed the source from $/Project/Folder2/Branch1 to $/Project/Folder1/Branch1. It was time for some coding…
private void PerformBranch(string server, string workspaceName, string userName, string changesetId, string sourceBranch, string targetBranch)
TeamFoundationServer tfs = new TeamFoundationServer(server);
VersionControlServer vcs = tfs.GetService(typeof(VersionControlServer)) as VersionControlServer;
Workspace workspace = vcs.GetWorkspace(server, userName);
VersionSpec versionSpec = VersionSpec.ParseSingleSpec(changesetId, userName);
workspace.PendBranch(sourceBranch, targetBranch, versionSpec);
This method has fixed the problem and after running it with the old branch path (source = $/Project/Folder1/Branch1), pending changes were waiting for check in.