private void LookBackToDetectRefactorings(ICodeHistoryRecord head)
        {
            // Retriever the solution and file names.
            this.solutionName = head.GetSolution();
            this.fileName = head.GetFile();

            var currentRecord = head;

            // Look back until no parent or reach the search depth.
            for (int i = 0; i < LOOK_BACK_LIMIT && currentRecord.HasPreviousRecord();
                i++, currentRecord = currentRecord.GetPreviousRecord())
            {
                try
                {
                    logger.Info("Looking back " + i + " revisions.");

                    // Handle current record.
                    if(HandlePreviousRecordWithDetectors(currentRecord.GetPreviousRecord(), head))
                    {
                        break;
                    }
                }
                catch (Exception e)
                {
                    logger.Fatal(e);
                }
            }
        }