c# - 以编程方式获取特定项目中特定文件夹的待处理更改?

标签 c#

我已经使用 TFS 一段时间了,因为在本地创建并放置特定文件和文件夹后,我需要将它们上传/ checkin 到 TFServer 上的各个位置。我正在映射工作区和所有内容,我从 PendingChanges 中得到了一堆更改,但不是我想要的更改,也不是我想要的更改。这个问题确实很烦人,因为对于每个 checkin 过程,我只想处理已映射的特定位置中的特定文件夹或文件。我将部分代码贴在这里供引用。

using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(serverUri, _cred))
        {
            VersionControlServer versionControl = (VersionControlServer)collection.GetService(typeof(VersionControlServer));


            string machineName = Environment.MachineName;
            string currentUserName = Environment.UserName;

            Workspace myWorkspace = versionControl.GetWorkspace(machineName, currentUserName);
            // tried this from Stack but didn't work.
            //PendingChange[] changes = myWorkspace.GetPendingChanges().Where(x => x.LocalOrServerFolder.Contains(localPath)).ToArray();

            PendingChange[] changes = myWorkspace.GetPendingChanges();
            if (changes.Length != 0)
            {
                foreach (PendingChange c in changes)
                {
                    rt.Text += "  path: " + c.LocalItem + ", change: " + PendingChange.GetLocalizedStringForChangeType(c.ChangeType) + "\n";
                }
            }
            else
            {
                rt.Text += "This didn't work.";
            }

}

基本上,我想在我的 TFS 类中抛出一个文件夹或文件,并让它检查该文件或文件夹是否是最新的或存在于 TFS 上并采取相应的操作。我希望我已经彻底描述了这个问题。

最佳答案

我认为我的答案不会完全回答您的问题,但如果您想获取特定文件夹的待处理更改,您可以使用类似的内容..

PendingChange[] changes = myWorkspace.GetPendingChanges(localPath, RecursionType.Full, false);

关于c# - 以编程方式获取特定项目中特定文件夹的待处理更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501086/

相关文章:

c# - 使用 Entity Framework 更新多对多关系?

c# - 应用根路径

c# - 将 List<T> 序列化为 google charts json 数据表

c# - "The given path' 格式不受支持。”

c# - 冷任务和 TaskExtensions.Unwrap

c# - 使用 Entity Framework 恢复和备份

c# - 如何使取消按钮像 "X"按钮一样工作?

c# - 用事件实现观察者模式

c# - 无法重定向进程的标准输出

c# - 并非所有路径都返回一个值。 - 可选返回?