void RemoveRedundantErrors(FGitSourceControlCommand& InCommand, const FString& InFilter) { bool bFoundRedundantError = false; for(auto Iter(InCommand.ErrorMessages.CreateConstIterator()); Iter; Iter++) { if(Iter->Contains(InFilter)) { InCommand.InfoMessages.Add(*Iter); bFoundRedundantError = true; } } InCommand.ErrorMessages.RemoveAll( FRemoveRedundantErrors(InFilter) ); // if we have no error messages now, assume success! if(bFoundRedundantError && InCommand.ErrorMessages.Num() == 0 && !InCommand.bCommandSuccessful) { InCommand.bCommandSuccessful = true; } }
/** * Remove redundant errors (that contain a particular string) and also * update the commands success status if all errors were removed. */ static void RemoveRedundantErrors(FPerforceSourceControlCommand& InCommand, const FString& InFilter) { bool bFoundRedundantError = false; for(auto Iter(InCommand.ErrorMessages.CreateConstIterator()); Iter; Iter++) { // Perforce reports files that are already synced as errors, so copy any errors // we get to the info list in this case if(Iter->ToString().Contains(InFilter)) { InCommand.InfoMessages.Add(*Iter); bFoundRedundantError = true; } } InCommand.ErrorMessages.RemoveAll( FRemoveRedundantErrors(InFilter) ); // if we have no error messages now, assume success! if(bFoundRedundantError && InCommand.ErrorMessages.Num() == 0 && !InCommand.bCommandSuccessful) { InCommand.bCommandSuccessful = true; } }