public void SetUp() { _processor = new ResponseProcessor(); DirectoryInfo di = new DirectoryInfo(@"c:\_temp\cvs\abougie"); _rootFolder = new Folder(di, "connection string", "/usr/local/cvsroot/sandbox", "abougie"); _sub1 = new Folder("sub1", _rootFolder); _sub2 = new Folder("sub2", _sub1); _sub21 = new Folder("sub21", _sub2); _sub211 = new Folder("sub211", _sub21); _sub3 = new Folder("sub3", _sub2); _sub11 = new Folder("sub11", _sub1); _sub12 = new Folder("sub12", _sub11); }
/// <summary> /// Processes the responses of each request. When all the requests /// needed to save a file have been retrieved from the CVS server, /// the file is saved and the information contained in the command /// is deleted for performance. /// </summary> /// <param name="request">The request.</param> protected internal override void AfterRequest(IRequest request) { if (request is ExportRequest) { IResponse response; IFileResponseGroup file = null; IList<IResponse> messages = null; bool gettingFile = false; ResponseProcessor processor = new ResponseProcessor(); response = Connection.GetResponse(); ProcessResponse(response); do { if (gettingFile) { if (response is MTMessageResponse) messages.Add(response); if (response is UpdatedResponse) { messages = ResponseHelper.CollapseMessagesInResponses(messages); file.MT = (IMessageResponse)messages[0]; file.FileResponse = (IFileResponse)response; // process each file Entry entry = processor.AddFile(CurrentFolder, file); entry.Save(true); Folder folder = entry.Parent; if (SaveCVSFolder) { if (folder.Module != CurrentFolder.Module) folder.SaveCVSFolder(); } CurrentFolder = folder; file = null; RemoveProcessedResponses(); gettingFile = false; // all done getting file } } else { if (response is ModTimeResponse) { file = new FileResponseGroup(); messages = new List<IResponse>(); file.ModTime = (ModTimeResponse)response; gettingFile = true; } } response = Connection.GetResponse(); ProcessResponse(response); } while (response != null); } else { base.AfterRequest(request); } }