簡體   English   中英

Visual Studio可擴展性:從團隊資源管理器的Git Commit Details頁面獲取Git存儲庫的路徑

[英]Visual Studio Extensibility: Get the Git repository's path from Team Explorer's Git Commit Details page

我正在將Git集成添加到我的Visual Studio擴展程序Diff All Files ,它允許快速區分(即比較)Team Explorer窗口中的所有文件與先前版本。 我使用Git Changes頁面(在團隊資源管理器中),因為當我獲得Microsoft.TeamFoundation.Git.Controls.Extensibility.IChangesExt服務時 ,其IncludedChanges屬性中的文件包含磁盤上的完整文件路徑。 但是,在使用Git Commit Details頁面時,我得到了Microsoft.TeamFoundation.Git.Controls.Extensibility.ICommitDetailsExt服務 ,其Changes屬性僅包含相對於git分支的文件路徑。

我正在使用LibGit2Sharp庫與Git存儲進行交互,並且能夠訪問git存儲庫LibGit2Sharp需要存儲庫中文件的路徑。 由於ICommitDetailsExt Changes屬性僅包含相對於git repo的文件路徑,因此我不知道如何獲取Git repo的路徑(因此我可以檢索要比較的文件的先前版本)。

起初我以為我可以使用DTE對象訪問解決方案文件的路徑,但是意識到可以在沒有解決方案本身打開的情況下查看掛起的更改以及之前對團隊資源管理器的Git倉庫的提交,以便贏得不行。

那么我如何知道Git Commit Details頁面顯示的提交來自哪些? ICommitDetailsExt服務上的其他任何屬性似乎都沒有我所擁有的存儲庫信息(即repo中文件的完整文件路徑)。 是否有一種不同的服務可以為Git提供商提供信息?

我也在MSDN論壇上發布了這個問題 ,希望微軟可以提供答案。

提前致謝。

雖然可能並不理想 - 一個選項(對於VS 2013 Update 3+和VS 2015),是使用IGitExt可擴展性點來獲取當前的活動存儲庫。 這是在Visual Studio 2013 Update 3中添加的,因此這對早期客戶端不起作用。 IGitExt包含一個獲取當前ActiveRepositories的屬性(當前只包含一個項目)。

我沒有找到關於msdn的文檔(但是),但您可以查看GitHub for Visual Studio擴展,看看他們如何使用它來獲取IGitExt服務訪問ActiveRepositories屬性的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM