Я добавляю интеграцию Git к моему расширению Visual Studio Diff All Files, что позволяет быстро различать (то есть сравнивать) все файлы в окне Team Explorer с предыдущим версия. Я работаю со страницей Git Changes (в Team Explorer), так как когда я получаю the Microsoft.TeamFoundation.Git.Controls.Extensibility.IChangesExt service, файлы в свойстве IncludedChanges содержат полный путь к файлу на диске. Однако при работе со страницей данных Git Commit Details я получаю the Microsoft.TeamFoundation.Git.Controls.Extensibility.ICommitDetailsExt service, свойство Changes которых содержит только пути к файлу относительно ветви git.Расширение Visual Studio: получить путь репозитория от Git Commit Подробности страницы
Я использую the LibGit2Sharp library, чтобы взаимодействовать с репозиторием Git и иметь возможность доступа к репозиторию git. Для LibGit2Sharp требуется путь к файлу в репозитории. Поскольку свойство ICommitDetailsExt Changes содержит только пути к файлу относительно git repo, я не знаю, как получить путь к репозиторию Git (так что я могу получить предыдущие версии файла для сравнения).
Сначала я подумал, что могу просто получить доступ к пути к файлу решения с использованием объекта DTE, но понял, что можно просмотреть ожидающие изменения и предыдущие коммиты в Git repo из Team Explorer без самого открытия решения , так что это не сработает.
Итак, как я могу узнать, что Git-репозиторий на странице Git Commit Details показывает, что происходит? Ни одно из других свойств в службе ICommitDetailsExt, похоже, не содержит информацию о репозитории, которая мне нужна (т. Е. Полный путь к файлу в репо). Есть ли другая услуга, которую я мог бы получить, которая даст информацию о поставщике Git?
Я также опубликовал this question on the MSDN forums в надежде, что Microsoft может предоставить ответ.
Заранее спасибо.
Спасибо, я нашел требуемую сборку в «C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider.dll" и полное имя типа - Microsoft.VisualStudio.TeamFoundation.Git.Extensibility.IGitExt. – deadlydog