Пример #1
0
        public VersionedAsset ToVersionedAsset(ExtendedItem eachItem)
        {
            VersionedAsset asset = new VersionedAsset(GetAssetPath(eachItem, Workspace));

            asset.SetChangeListID(eachItem.VersionLocal.ToString());
            asset.SetRevision(eachItem.VersionLocal.ToString());

            if (asset.ExistsOnDisk)
            {
                asset.AddState(State.kLocal);
            }
            else
            {
                asset.AddState(State.kMissing);
            }

            if (eachItem.IsInWorkspace)
            {
                if (eachItem.IsLatest)
                {
                    asset.AddState(State.kSynced);
                }
                else
                {
                    asset.AddState(State.kOutOfSync);
                }
            }

            if (Workspace.Location == Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation.Local)
            {
                ApplyStatusFromExtendedItem(asset, eachItem);
            }

            return(asset);
        }
Пример #2
0
        void ApplyStatusFromExtendedItem(VersionedAsset asset, ExtendedItem eachItem)
        {
            if (asset == null)
            {
                return;
            }

            var isLocal = true;

            if (eachItem.ChangeType.HasFlag(ChangeType.Lock))
            {
                asset.AddState(isLocal ? State.kLockedLocal : State.kLockedRemote);
            }

            if (eachItem.ChangeType.HasFlag(ChangeType.Add))
            {
                asset.AddState(isLocal ? State.kAddedLocal : State.kAddedRemote);
            }
            else if (eachItem.ChangeType.HasFlag(ChangeType.Delete))
            {
                asset.AddState(isLocal ? State.kDeletedLocal : State.kDeletedRemote);

                if (isLocal)
                {
                    asset.RemoveState(State.kMissing);
                    asset.AddState(State.kSynced);
                }
            }
            else if (eachItem.ChangeType.HasFlag(ChangeType.Edit) || eachItem.ChangeType.HasFlag(ChangeType.Rename) || eachItem.ChangeType.HasFlag(ChangeType.Branch) || eachItem.ChangeType.HasFlag(ChangeType.Merge) || eachItem.ChangeType.HasFlag(ChangeType.Rollback) || eachItem.ChangeType.HasFlag(ChangeType.Undelete) || eachItem.ChangeType.HasFlag(ChangeType.Encoding))
            {
                asset.AddState(isLocal ? State.kCheckedOutLocal : State.kCheckedOutRemote);
            }
        }