Exemplo n.º 1
0
        /// <summary>
        /// Gets the source.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <remarks></remarks>
        public override void GetSource(IIntegrationResult result)
        {
            if (!AutoGetSource || !ProjectExists(result))
            {
                return;
            }

            this.WorkingDirectory = result.BaseFromWorkingDirectory(this.WorkingDirectory);

            if (CleanCopy)
            {
                // If we have said we want a clean copy, then delete old copy before getting.
                Log.Debug("[TFS] Deleting " + this.WorkingDirectory);
                this.DeleteDirectory(this.WorkingDirectory);
            }

            TfsWorkspaceStatus workspaceStatus = GetWorkspaceStatus(result);

            if (workspaceStatus.WorkspaceExists)
            {
                if (DeleteWorkspace)
                {
                    // We have asked for a new workspace every time, therefore delete the existing one.
                    Log.Debug("[TFS] Removing existing workspace " + Workspace);
                    LookForErrorReturns(executor.Execute(DeleteWorkSpaceProcessInfo(result)));

                    //Create Workspace
                    Log.Debug("[TFS] Creating New Workspace " + Workspace);
                    LookForErrorReturns(executor.Execute(CreateWorkSpaceProcessInfo(result)));

                    //Map Workspace
                    Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "[TFS] Mapping Workspace {0} to {1}", Workspace, WorkingDirectory));
                    LookForErrorReturns(executor.Execute(MapWorkSpaceProcessInfo(result)));
                }
            }
            else
            {
                //Create Workspace
                Log.Debug("[TFS] Creating New Workspace " + Workspace);
                LookForErrorReturns(executor.Execute(CreateWorkSpaceProcessInfo(result)));

                //Map Workspace
                Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "[TFS] Mapping Workspace {0} to {1}", Workspace, WorkingDirectory));
                LookForErrorReturns(executor.Execute(MapWorkSpaceProcessInfo(result)));
            }

            if (!workspaceStatus.WorkspaceIsMappedCorrectly)
            {
                //Map Workspace
                Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "[TFS] Mapping Workspace {0} to {1}", Workspace, WorkingDirectory));
                LookForErrorReturns(executor.Execute(MapWorkSpaceProcessInfo(result)));
            }

            Log.Debug("[TFS] Getting Files in " + Workspace);
            ProcessInfo pi = GetWorkSpaceProcessInfo(result);

            pi.TimeOut = 3600000;
            LookForErrorReturns(executor.Execute(pi));
        }
Exemplo n.º 2
0
        private TfsWorkspaceStatus GetWorkspaceStatus(IIntegrationResult result)
        {
            Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "[TFS] Fetching Workspace {0} details", Workspace));
            ProcessResult pr = executor.Execute(CheckWorkSpaceProcessInfo(result));

            LookForErrorReturns(pr);

            TfsWorkspaceStatus status = new TfsWorkspaceStatus();

            status.WorkspaceIsMappedCorrectly = pr.StandardOutput.Contains(ProjectPath + ": " + WorkingDirectory);
            status.WorkspaceExists            = !(pr.StandardOutput.Contains("No workspace matching"));

            return(status);
        }
Exemplo n.º 3
0
        private TfsWorkspaceStatus GetWorkspaceStatus(IIntegrationResult result)
        {
            Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "[TFS] Fetching Workspace {0} details", Workspace));
            ProcessResult pr = executor.Execute(CheckWorkSpaceProcessInfo(result));

            LookForErrorReturns(pr);

            TfsWorkspaceStatus status = new TfsWorkspaceStatus();
            status.WorkspaceIsMappedCorrectly = pr.StandardOutput.Contains(ProjectPath + ": " + WorkingDirectory);
            status.WorkspaceExists = !(pr.StandardOutput.Contains("No workspace matching"));

            return status;

        }