2017-04-18 80 views
0

我們一個Git bash命令給出低於該得到的承諾文件在github上2個標籤的列表之間的文件列表,Libgit2Sharp:獲得兩個標籤

git log tag1 tag2 --stat 

誰能爲它提供了相當於Libgit2Sharp碼?

回答

0

試試這個:git log tag1 tag2 --stat

 using (var repo = new Repository(@"repoPath")) 
     { 
      Tag tagTo = repo.Tags["tag2"]; 
      Tag tagFrom = repo.Tags["tag1"]; 

      var commitFrom = repo.Lookup<LibGit2Sharp.Commit>(tagFrom.Target.Sha); 
      var commitTo = repo.Lookup<LibGit2Sharp.Commit>(tagTo.Target.Sha); 

      TreeChanges treeChanges = repo.Diff.Compare<TreeChanges>(commitFrom.Tree, commitTo.Tree); 
     } 

但是,當你只想標籤之間的承諾:git log tag1 tag2你可以使用:

 using (var repo = new Repository(@"repoPath")) 
     { 
      Tag tagTo = repo.Tags["tag2"]; 
      Tag tagFrom = repo.Tags["tag1"]; 

      var filter = new CommitFilter(); 

      filter.IncludeReachableFrom = tagTo.Target.Sha; 
      filter.ExcludeReachableFrom = tagFrom.Target.Sha; 

      var commits = repo.Commits.QueryBy(filter).ToList(); 
     }