public static List<GitData_File_Commit_Full> file_Commits(this string fileToMap, API_NGit nGit) { var file_Commits = new List<GitData_File_Commit_Full>(); var mappedSha1 = new List<string>(); var gitRepository = nGit.gitData_Repository(false); gitRepository.Config.Load_CommitTrees = true; gitRepository.loadData(); var results = new List<string>(); foreach(var commit in gitRepository.Commits) foreach(var file in commit.Tree) { if (file.FilePath == fileToMap) if (mappedSha1.contains(file.Sha1).isFalse()) { var fileCommit = new GitData_File_Commit_Full { FilePath = fileToMap, Sha1 = file.Sha1, CommitId = commit.Sha1, Author = commit.Author, Committer = commit.Committer, When = commit.When, FileContents = nGit.open_Object(file.Sha1).bytes().ascii() }; file_Commits.Add(fileCommit); mappedSha1.add(file.Sha1); } } return file_Commits; }
private GitData_Repository getGitData(API_NGit nGit, bool clearCache) { if (clearCache) "gitData".o2Cache(null); return "gitData".o2Cache(()=> { var gitData = nGit.gitData_Repository(); gitData.map_File_Commits(); return gitData; }); }