public List<int> GetChangeSetListBetweenTwoLabels(string LabelScope, string BaseLabel, string TargetLabel)
        {
            //tf.exe history /collection:http://server/tfs/defaultcollection "$/project/solution"
            //        /version:LBuild.Solution_20130308.1~LBuild.Soolution_20130328.2 /recursive

            var vcs = tpc.GetService<VersionControlServer>();

            var sourceSpec = new LabelVersionSpec(BaseLabel, LabelScope);
            var targetSpec = new LabelVersionSpec(TargetLabel, LabelScope);

            var deltaChangesets = new List<Changeset>();
            var rtn = new List<int>();
            foreach (Changeset changeSet in
                vcs.QueryHistory(
                            path: LabelScope,
                            version: targetSpec,
                            deletionId: 0,
                            recursion: RecursionType.Full,
                            user: string.Empty,
                            versionFrom: sourceSpec,
                            versionTo: targetSpec,
                            maxCount: int.MaxValue,
                            includeChanges: true,
                            slotMode: false,
                            includeDownloadInfo: false,
                            sortAscending: true
                        )
                )
                rtn.Add(changeSet.ChangesetId);

            return rtn;
        }
        /// <summary>
        /// Get the label details.
        /// </summary>
        protected override void InternalExecute()
        {
            var label1 = this.Label1.Get(this.ActivityContext);
            var label2 = this.Label2.Get(this.ActivityContext);

            var label1Spec = new LabelVersionSpec(label1.Name, label1.Scope);
            var label2Spec = new LabelVersionSpec(label2.Name, label2.Scope);
            var vcs = this.VersionControlServer.Get(this.ActivityContext);

            var queryHistoryResult = vcs.QueryHistory("$/", VersionSpec.Latest, 0, RecursionType.Full, null, label1Spec, label2Spec, int.MaxValue, false, false).Cast<Changeset>();

            this.Changeset.Set(this.ActivityContext, queryHistoryResult);
        }
        /// <summary>
        /// Get the label details.
        /// </summary>
        protected override void InternalExecute()
        {
            var label1 = this.Label1.Get(this.ActivityContext);
            var label2 = this.Label2.Get(this.ActivityContext);

            var label1Spec = new LabelVersionSpec(label1.Name, label1.Scope);
            var label2Spec = new LabelVersionSpec(label2.Name, label2.Scope);
            var vcs        = this.VersionControlServer.Get(this.ActivityContext);

            var queryHistoryResult = vcs.QueryHistory("$/", VersionSpec.Latest, 0, RecursionType.Full, null, label1Spec, label2Spec, int.MaxValue, false, false).Cast <Changeset>();

            this.Changeset.Set(this.ActivityContext, queryHistoryResult);
        }
        private int GetMostRecentChangesetId(string path, LabelVersionSpec labelVersionSpec)
        {
            int mostRecentChangesetId = 0;

            foreach (VersionControlLabel label in clientHelper.VersionControl.QueryLabels(labelVersionSpec.Label, path, null, true))
            {
                foreach (Item item in label.Items)
                {
                    mostRecentChangesetId = Math.Max(item.ChangesetId, mostRecentChangesetId);
                }
            }
            return(mostRecentChangesetId);
        }
示例#5
0
        private ChangesetVersionSpec ConvertToChangesetSpec(LabelVersionSpec spec)
        {
            VersionControlLabel Label = this.ServerConnection.SourceControl.QueryLabels(spec.Label, spec.Scope, null, true)[0];
            int HighestChangesetId    = 0;

            foreach (Item item in Label.Items)
            {
                if (HighestChangesetId < item.ChangesetId)
                {
                    HighestChangesetId = item.ChangesetId;
                }
            }
            return(new ChangesetVersionSpec(HighestChangesetId));
        }
        public string GetReleaseNotesBetweenTwoLabels(string LabelScope, string BaseLabel, string TargetLabel)
        {
            var vcs = tpc.GetService<VersionControlServer>();
            var proj = vcs.GetTeamProject(_projectName);

            var sourceSpec = new LabelVersionSpec(BaseLabel, LabelScope);
            var targetSpec = new LabelVersionSpec(TargetLabel, LabelScope);

            var deltaChangesets = new List<Changeset>();

            foreach (Changeset changeSet in
                vcs.QueryHistory(
                            path: LabelScope,
                            version: targetSpec,
                            deletionId: 0,
                            recursion: RecursionType.Full,
                            user: string.Empty,
                            versionFrom: sourceSpec,
                            versionTo: targetSpec,
                            maxCount: int.MaxValue,
                            includeChanges: true,
                            slotMode: false,
                            includeDownloadInfo: false,
                            sortAscending: true
                        )
                )
                deltaChangesets.Add(changeSet);

            var html = "";// ReleaseNotesRender.GetHtml(deltaChangesets);
            //Create output
            byte[] b;
            using (var memoryStream = new System.IO.MemoryStream())
            {
                using (var r = new System.IO.StreamWriter(memoryStream, Encoding.UTF8))
                {
                    // Various for loops etc as necessary that will ultimately do this:
                    //r.Write(html.style);
                    //r.Write(html.workitems);
                    //r.Write(html.changesets);
                }
                b = memoryStream.ToArray();
            }
            return html;
        }
 private int GetMostRecentChangesetId( string path, LabelVersionSpec labelVersionSpec )
 {
     int mostRecentChangesetId = 0;
     foreach( VersionControlLabel label in clientHelper.VersionControl.QueryLabels( labelVersionSpec.Label, path, null, true ) )
     {
         foreach( Item item in label.Items )
         {
             mostRecentChangesetId = Math.Max( item.ChangesetId, mostRecentChangesetId );
         }
     }
     return mostRecentChangesetId;
 }
示例#8
0
文件: TFS.cs 项目: hopenbr/HopDev
 public void GetFromTFVC(string SourceControlPath, string LocalPath, string Label)
 {
     Workspace _ws = this.GetWorkSpace(SourceControlPath, LocalPath);
     string[] _items = new string[]{SourceControlPath};
     LabelVersionSpec _Labelvs = new LabelVersionSpec(Label);
     _ws.Get(_items, _Labelvs, RecursionType.Full, GetOptions.GetAll); //push elements to local mapping
     _ws.Delete();//delete the workspace, but the local elements will remain.
 }
示例#9
0
        private void GetSource(SourceProject project, IIntegrationResult result)
        {
            if (project.CleanCopy)
            {
                // If we have said we want a clean copy, then delete old copy before getting.
                Log.Debug("Deleting " + project.WorkingDirectory);
                DeleteDirectory(project.WorkingDirectory);
            }

            Workspace[] workspaces = this.SourceControl.QueryWorkspaces(Workspace, this.SourceControl.AuthorizedUser, Workstation.Current.Name);
            Workspace   workspace  = null;

            if (workspaces.Length > 0)
            {
                // The workspace exists.
                if (DeleteWorkspace)
                {
                    // We have asked for a new workspace every time, therefore delete the existing one.
                    Log.Debug("Removing existing workspace " + Workspace);
                    this.SourceControl.DeleteWorkspace(Workspace, this.SourceControl.AuthorizedUser);
                    workspaces = new Workspace[0];
                }
                else
                {
                    Log.Debug("Existing workspace detected - reusing");
                    workspace = workspaces[0];
                }
            }
            if (workspaces.Length == 0)
            {
                Log.Debug("Creating new workspace name: " + Workspace);
                workspace = this.SourceControl.CreateWorkspace(Workspace, this.SourceControl.AuthorizedUser, DEFAULT_WORKSPACE_COMMENT);
            }

            try
            {
                workspace.Map(project.ProjectPath, project.WorkingDirectory);

                Log.Debug(String.Format("Getting {0} to {1}", project.ProjectPath, project.WorkingDirectory));

                VersionSpec verSpec = LatestVersionSpec.Instance;
                if (project.ApplyLabel)
                {
                    verSpec = new LabelVersionSpec(result.Label);
                }
                else if (!String.IsNullOrEmpty(project.Label))
                {
                    verSpec = new LabelVersionSpec(project.Label);
                }

                GetRequest getReq = new GetRequest(new ItemSpec(project.ProjectPath, RecursionType.Full), verSpec);

                if (project.CleanCopy)
                {
                    Log.Debug("Forcing a Get Specific with the options \"get all files\" and \"overwrite read/write files\"");
                    workspace.Get(getReq, GetOptions.GetAll | GetOptions.Overwrite);
                }
                else
                {
                    Log.Debug("Performing a Get Latest");
                    workspace.Get(getReq, GetOptions.None);
                }
            }
            finally
            {
                if (workspace != null && DeleteWorkspace)
                {
                    Log.Debug("Deleting the workspace");
                    workspace.Delete();
                }
            }
        }
示例#10
0
        private ChangesetVersionSpec ConvertToChangesetSpec(LabelVersionSpec spec)
        {
            VersionControlLabel Label = this.ServerConnection.SourceControl.QueryLabels(spec.Label, spec.Scope, null, true)[0];
            int HighestChangesetId = 0;

            foreach (Item item in Label.Items)
            {
                if (HighestChangesetId < item.ChangesetId)
                {
                    HighestChangesetId = item.ChangesetId;
                }
            }
            return new ChangesetVersionSpec(HighestChangesetId);
        }