gpt4 book ai didi

git - Visual Studio 扩展性 : Get the Git repository's path from Team Explorer's Git Commit Details page

转载 作者:太空狗 更新时间:2023-10-29 13:35:18 27 4
gpt4 key购买 nike

我正在将 Git 集成添加到我的 Visual Studio 扩展 Diff All Files ,它允许快速比较(即比较)Team Explorer 窗口中的所有文件与以前的版本。我让它与 Git Changes 页面(在团队资源管理器中)一起工作,因为当我得到 the Microsoft.TeamFoundation.Git.Controls.Extensibility.IChangesExt service 时它的 IncludedChanges 属性中的文件包含磁盘上的完整文件路径。但是,在使用 Git 提交详细信息页面时,我得到 the Microsoft.TeamFoundation.Git.Controls.Extensibility.ICommitDetailsExt service ,其 Changes 属性仅包含相对于 git 分支的文件路径。

我正在使用 the LibGit2Sharp library与 Git 存储库交互,并能够访问 git 存储库 LibGit2Sharp 需要存储库中文件的路径。由于 ICommitDetailsExt Changes 属性仅包含相对于 git 存储库的文件路径,我不知道如何获取 Git 存储库的路径(因此我可以检索文件的先前版本以进行比较)。

起初我以为我可以使用 DTE 对象访问解决方案文件的路径,但意识到可以从 Team Explorer 查看未决更改和之前对 Git 存储库的提交,而无需打开解决方案本身,所以那是行不通的。

那么我如何知道 Git 提交详细信息页面显示的提交来自哪个 Git 存储库? ICommitDetailsExt 服务上的其他属性似乎都没有我想要的存储库信息(即存储库中文件的完整文件路径)。是否有其他服务可以为 Git 提供商提供信息?

我也发布了this question on the MSDN forums希望微软能给出一个答案。

提前致谢。

最佳答案

虽然可能不理想 - 一种选择(对于 VS 2013 Update 3+ 和 VS 2015)是使用 IGitExt 扩展点来获取当前的事件存储库。这是在 Visual Studio 2013 Update 3 中添加的,因此不适用于早期客户端。 IGitExt 包含一个属性来获取当前的 ActiveRepositories(目前只包含一个项目)。

我还没有在 msdn 上找到这方面的文档,但您可以查看 GitHub for Visual Studio 扩展以了解他们如何使用它作为 getting the IGitExt service 的示例和 accessing the ActiveRepositories属性(property)。

关于git - Visual Studio 扩展性 : Get the Git repository's path from Team Explorer's Git Commit Details page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32303790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com