C# TFS API-检入所有文件,无论其状态如何
我正在进行一个项目,为我的部门扩展TFS的功能。基本上,我们有两个存储库(团队项目集合),一个是开发库,一个是生产库。开发版由我们的开发人员使用,而生产版则是我们希望存储代码副本的地方。我做了一些研究,似乎这是一个经常被要求的,从来没有提供的请求,所以我决定写一个定制的应用程序 在我的应用程序中,代码(除其他外)执行以下操作C# TFS API-检入所有文件,无论其状态如何,c#,tfs,C#,Tfs,我正在进行一个项目,为我的部门扩展TFS的功能。基本上,我们有两个存储库(团队项目集合),一个是开发库,一个是生产库。开发版由我们的开发人员使用,而生产版则是我们希望存储代码副本的地方。我做了一些研究,似乎这是一个经常被要求的,从来没有提供的请求,所以我决定写一个定制的应用程序 在我的应用程序中,代码(除其他外)执行以下操作 检查开发存储库中没有有关项目的签出 是否在不创建或依赖现有工作区映射的情况下访问客户端计算机上的目录 在链接到先前创建的本地目录的生产存储库上创建临时工作区映射 查找本地
- 检查开发存储库中没有有关项目的签出
- 是否在不创建或依赖现有工作区映射的情况下访问客户端计算机上的目录
- 在链接到先前创建的本地目录的生产存储库上创建临时工作区映射
- 查找本地目录和生产环境中签入代码之间的挂起更改
- 检查更改
// create a workspace on my production server
wSpace = vcsProdServer.CreateWorkspace(cWsMapping);
wSpace.Map(pProjectName, combinedPath);
wSpace.Get();
string files = pProjectName + "/*";
int pendingAdd = wSpace.PendAdd(files, true);
int pendingEdit = wSpace.PendEdit(files, RecursionType.Full);
// get the pending changes
PendingChange[] changes = wSpace.GetPendingChanges();
// check in the changes
wSpace.CheckIn(changes, string.Format(checkinMessage, pProjectName, DateTime.Now));
pProjectName引用TFS中的项目(例如$/MyProject),combinedPath是下载最新版本代码的本地路径。对,我想我已经修复了,以防有人感兴趣。问题是因为我在每个进程结束时删除了wSpace,这意味着编辑或删除的文件不会被拾取。这不是一个理想的解决方案,我这样做,但它似乎工作 工作区的更新代码为:
// create a workspace on my production server
try
{
wSpace = vcsProdServer.GetWorkspace(cWsMapping, vcsProdServer.AuthorizedUser);
}
catch
{
wSpace = vcsProdServer.CreateWorkspace(cWsMapping);
wSpace.Map(pProjectName, combinedPath);
}
wSpace.Get();
现在,当我获取应用于变更集的标签时,我获取所有记录