2015-10-18 88 views
0

我正在學習Git。現在我正在使用LibGit2Sharp庫來玩我的Git存儲庫。顯示所有當前文件和目錄及其狀態

我想顯示當前的Repository文件結構,包括已添加但尚未完成的新文件。

我看到,我可以得到最新的Tree犯我做:

using (var repo = new Repository(repositoryPath)) 
    { 
     Tree tree = repo.Head.Tip.Tree; 
     TraverseTree(tree); 
    } 

    void TraverseTree(Tree tree) 
    { 
     foreach (TreeEntry item in tree.ToList()) 
     { 
      Console.WriteLine(item.Path); 

      if (item.TargetType == TreeEntryTargetType.Tree) 
      { 
       Tree subTree = (Tree)item.Target; 
       TraverseTree(subTree); 
      } 
     } 
    } 

可以獲取當前Reository結構,包括使用Git新的文件?

回答

0

我想顯示當前存儲庫文件結構,包括已添加但尚未提交的新文件。

它看起來像你像git status後。

這可以通過使用LibGit2Sharp通過repo.RetrieveStatus()方法輕鬆完成。

爲了更全面地瞭解這個功能及其使用案例,我建議你看一下測試套件的StatusFixture

+0

完美,謝謝!我仍然有一個問題:'repo.RetrieveStatus()'給我一個修改文件的摘要。如果我想顯示當前的文件樹結構,我將不得不遍歷實際上的文件夾/文件,並基於'RepositoryStatus'對象更新UI?因爲存儲庫樹只包含已經上演的內容 – Catalin

+0

您可以在「Repository.Index」中找到上演的內容。 'Repository.Head.Tip.Tree'包含了已經提交的內容。頭部樹的遍歷可以讓你顯示頭部提交的內容。 – nulltoken

相關問題