internal void MergeInMoreDetailedPendingChanges(VersionedAssetList result, bool isRecursive) { if (result.Count == 0) { return; } var conflicts = GetConflicts(result); foreach (var item in conflicts) { var found = FindVersionedAsset(item, result); if (found != null) { found.AddState(State.kConflicted); found.RemoveState(State.kSynced); found.AddState(State.kOutOfSync); } } if (Workspace.Location == Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation.Server) { var time = DateTime.Now; var pending = GetProjectPendingSets(result, isRecursive); var localPending = pending.Where(item => item.Type == PendingSetType.Workspace && item.OwnerName == Workspace.OwnerName && item.Name == Workspace.Name).ToArray(); var remotePending = pending.Where(item => item.Type == PendingSetType.Workspace && !(item.OwnerName == Workspace.OwnerName && item.Name == Workspace.Name)).ToArray(); TfsFileStatusCache.RefreshPendingChanges(result.Select(each => each.GetPath()), Workspace, remotePending, localPending, time); foreach (var item in pending) { if (item.Type != PendingSetType.Workspace) { continue; } if (item.OwnerName == Workspace.OwnerName && item.Name == Workspace.Name) { ApplyStatusFromPendingSet(result, item, true); } else { ApplyStatusFromPendingSet(result, item, false); } } } }
internal PendingChange[] GetProjectPendingChanges(VersionedAssetList versionedAssetList) { return(Workspace.GetPendingChanges(versionedAssetList.Select(each => each.GetPath()).ToArray())); }
internal Conflict[] GetConflicts(VersionedAssetList versionedAssetList) { var conflicts = Workspace.QueryConflicts(versionedAssetList.Select(each => each.GetPath()).ToArray(), true); return(conflicts); }
internal PendingSet[] GetProjectPendingSets(VersionedAssetList versionedAssetList, bool isRecursive = true) { var list = versionedAssetList.Select(each => each.GetPath()).ToArray(); return(VersionControlServer.GetPendingSets(list, isRecursive ? RecursionType.Full : RecursionType.None)); }