2016-12-03 75 views
0

我試圖實現​​到Visual Studio擴展CommitFormatter,我需要這個git diff補丁。我可能使用libgit2sharp(我期望很容易),但是,這將拉入一個額外的依賴。如果不需要,我不想在擴展上添加負擔。如何從團隊資源管理器中檢索差異修補程序?

我希望可以使用團隊資源管理器的某個API獲得相同的結果,但是我對Visual Studio包含的庫Microsoft.TeamExplorer.*.dll的數量感到有點不知所措,並且無法找到任何有用的MSDN頁面。

我想實現的就是讓臨時區域的「差異補丁」,在輸出git diff --cached「在命令行給你,但是如果使用團隊資源管理器API。以類似什麼libgit2sharprepo.Diff.Compare<Patch>(repo.Head.Tip.Tree, DiffTargets.Index)會給你。

回答

1

沒有Microsoft.TeamExplorer組件提供了一個git的差異,公共或私人。

根據版本的不同,團隊資源管理器或採用LibGit2Sharp與git倉庫(之前的VS 2017)或使用互動git(VS 2017)。

但是,版本實際上創建了git diff文件。差異視圖將原始文件從存儲庫中取出並計算差異並顯示它們本身,它不使用補丁文件作爲輸入或作爲中間步驟。

您應該使用LibGit2Sharp或致電git產生差異。

相關問題