/// <summary>
		/// Get all the commits in a CVS log ordered by date.
		/// </summary>
		public IEnumerable<Commit> GetCommits()
		{
			var lookup = new Dictionary<string, Commit>();
			using (var commitsByMessage = new CommitsByMessage(m_log))
			{
				foreach (var revision in m_fileRevisions)
				{
					if (revision.IsAddedOnAnotherBranch)
					{
						revision.File.BranchAddedOn = GetBranchAddedOn(revision.Message);
					}
					else if (revision.CommitId.Length == 0)
					{
						commitsByMessage.Add(revision);
					}
					else
					{
						Commit commit;
						if (lookup.TryGetValue(revision.CommitId, out commit))
						{
							commit.Add(revision);
						}
						else
						{
							commit = new Commit(revision.CommitId) { revision };
							lookup.Add(commit.CommitId, commit);
						}
					}
				}

				return lookup.Values.Concat(commitsByMessage.Resolve()).OrderBy(c => c.Time).ToList();
			}
		}
        /// <summary>
        /// Get all the commits in a CVS log ordered by date.
        /// </summary>
        public IEnumerable <Commit> GetCommits()
        {
            var lookup = new Dictionary <string, Commit>();

            using (var commitsByMessage = new CommitsByMessage(m_log))
            {
                foreach (var revision in m_fileRevisions)
                {
                    if (revision.IsAddedOnAnotherBranch)
                    {
                        revision.File.BranchAddedOn = GetBranchAddedOn(revision.Message);
                    }
                    else if (revision.CommitId.Length == 0)
                    {
                        commitsByMessage.Add(revision);
                    }
                    else
                    {
                        Commit commit;
                        if (lookup.TryGetValue(revision.CommitId, out commit))
                        {
                            commit.Add(revision);
                        }
                        else
                        {
                            commit = new Commit(revision.CommitId)
                            {
                                revision
                            };
                            lookup.Add(commit.CommitId, commit);
                        }
                    }
                }

                return(lookup.Values.Concat(commitsByMessage.Resolve()).OrderBy(c => c.Time).ToList());
            }
        }