是否有公开发布的C# API可获取指定commit的代码diff?
获取指定Commit代码Diff的C#实现方案
TFS/Azure DevOps 场景可用能力
- 微软没有对外单独公开旧版内部
fileDiff接口的相关计划,该接口的全部功能已经整合到面向所有开发者开放的官方SDK与公开REST服务中,不存在普通开发者无法访问的权限限制 - 直接通过NuGet安装
Microsoft.TeamFoundationServer.Client包,使用包内提供的GitHttpClient.GetCommitDiffsAsync方法,传入目标commit ID、所属仓库信息,即可返回该commit与父提交比对的全量文件Diff、逐行修改记录、新增/删除行数统计,完全覆盖原fileDiff接口的能力范围 - 上述方法调用的是公开的REST服务端点,普通开发授权账号即可正常使用,无需申请特殊内测权限
通用Git仓库场景替代方案
- 如果对接非TFS类的自建/第三方Git仓库,可使用开源C#类库
LibGit2Sharp,直接加载仓库路径与目标commit标识,通过库内置的提交对比能力生成代码Diff,不依赖任何平台专属的封闭接口
补充说明:你之前检索到的无法访问的
fileDiff接口是TFS早期版本的内部未公开实现,后续官方版本迭代已经把相关能力全面下沉到公开服务层,不存在能力缺失或权限封锁的问题
内容的提问来源于stack exchange,提问作者Yu Dai
相关产品推荐
相关产品推荐

