/// <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)); }
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); }
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; }