示例#1
0
 internal VssRevision(VssItem item, RevisionRecord revision, CommentRecord comment)
 {
     this.item     = item;
     this.action   = CreateAction(revision, item);
     this.revision = revision;
     this.comment  = comment;
 }
示例#2
0
 public bool MoveNext()
 {
     entryItem = null;
     do
     {
         entryRecord = beforeFirst ? entryFile.GetFirstEntry() : entryFile.GetNextEntry();
         beforeFirst = false;
     }while (entryRecord != null && ((int)itemTypes & (int)entryRecord.ItemType) == 0);
     return(entryRecord != null);
 }
示例#3
0
        private static VssAction CreateAction(RevisionRecord revision, VssItem item)
        {
            var db = item.Database;

            switch (revision.Action)
            {
            case Hpdi.VssPhysicalLib.Action.Label:
            {
                return(new VssLabelAction(revision.Label));
            }

            case Hpdi.VssPhysicalLib.Action.DestroyProject:
            case Hpdi.VssPhysicalLib.Action.DestroyFile:
            {
                var destroy = (DestroyRevisionRecord)revision;
                return(new VssDestroyAction(db.GetItemName(destroy.Name, destroy.Physical)));
            }

            case Hpdi.VssPhysicalLib.Action.RenameProject:
            case Hpdi.VssPhysicalLib.Action.RenameFile:
            {
                var rename = (RenameRevisionRecord)revision;
                return(new VssRenameAction(db.GetItemName(rename.Name, rename.Physical),
                                           db.GetFullName(rename.OldName)));
            }

            case Hpdi.VssPhysicalLib.Action.MoveFrom:
            {
                var moveFrom = (MoveRevisionRecord)revision;
                return(new VssMoveFromAction(db.GetItemName(moveFrom.Name, moveFrom.Physical),
                                             moveFrom.ProjectPath));
            }

            case Hpdi.VssPhysicalLib.Action.MoveTo:
            {
                var moveTo = (MoveRevisionRecord)revision;
                return(new VssMoveToAction(db.GetItemName(moveTo.Name, moveTo.Physical),
                                           moveTo.ProjectPath));
            }

            case Hpdi.VssPhysicalLib.Action.ShareFile:
            {
                var share = (ShareRevisionRecord)revision;
                return(new VssShareAction(db.GetItemName(share.Name, share.Physical),
                                          share.ProjectPath));
            }

            case Hpdi.VssPhysicalLib.Action.BranchFile:
            case Hpdi.VssPhysicalLib.Action.CreateBranch:
            {
                var branch = (BranchRevisionRecord)revision;
                var name   = db.GetFullName(branch.Name);
                return(new VssBranchAction(
                           new VssItemName(name, branch.Physical, branch.Name.IsProject),
                           new VssItemName(name, branch.BranchFile, branch.Name.IsProject)));
            }

            case Hpdi.VssPhysicalLib.Action.EditFile:
            {
                return(new VssEditAction(item.PhysicalName));
            }

            case Hpdi.VssPhysicalLib.Action.CreateProject:
            case Hpdi.VssPhysicalLib.Action.CreateFile:
            {
                var create = (CommonRevisionRecord)revision;
                return(new VssCreateAction(db.GetItemName(create.Name, create.Physical)));
            }

            case Hpdi.VssPhysicalLib.Action.AddProject:
            case Hpdi.VssPhysicalLib.Action.AddFile:
            {
                var add = (CommonRevisionRecord)revision;
                return(new VssAddAction(db.GetItemName(add.Name, add.Physical)));
            }

            case Hpdi.VssPhysicalLib.Action.DeleteProject:
            case Hpdi.VssPhysicalLib.Action.DeleteFile:
            {
                var delete = (CommonRevisionRecord)revision;
                return(new VssDeleteAction(db.GetItemName(delete.Name, delete.Physical)));
            }

            case Hpdi.VssPhysicalLib.Action.RecoverProject:
            case Hpdi.VssPhysicalLib.Action.RecoverFile:
            {
                var recover = (CommonRevisionRecord)revision;
                return(new VssRecoverAction(db.GetItemName(recover.Name, recover.Physical)));
            }

            case Hpdi.VssPhysicalLib.Action.ArchiveProject:
            {
                var archive = (ArchiveRevisionRecord)revision;
                return(new VssArchiveAction(db.GetItemName(archive.Name, archive.Physical),
                                            archive.ArchivePath));
            }

            case Hpdi.VssPhysicalLib.Action.RestoreProject:
            case Hpdi.VssPhysicalLib.Action.RestoreFile:
            {
                var archive = (ArchiveRevisionRecord)revision;
                return(new VssRestoreAction(db.GetItemName(archive.Name, archive.Physical),
                                            archive.ArchivePath));
            }

            default:
                throw new ArgumentException("Unknown revision action: " + revision.Action);
            }
        }
示例#4
0
 internal VssFileRevision(VssItem item, RevisionRecord revision, CommentRecord comment)
     : base(item, revision, comment)
 {
 }