Gitlab Compare API中straight参数的作用是什么?请举例说明
GitLab Compare API 中
straight 参数的作用及示例 参数作用
straight 参数用来控制API计算代码差异的逻辑:
- 默认(不设置或设为
false):API会先找到两个分支/提交的共同祖先节点,然后对比该祖先分别到两个目标提交的所有变更,返回的是两边分支各自相对于共同祖先的差异总和。 - 设为
true:跳过共同祖先的查找,直接对比源提交到目标提交的线性路径差异,只展示从源到目标的直接变更(等同于本地执行git diff <源提交>..<目标提交>的直连对比结果)。
实操示例
1. 默认对比模式(不启用straight)
请求命令示例:
curl --header "PRIVATE-TOKEN: <你的GitLab访问令牌>" "https://gitlab.example.com/api/v4/projects/<项目ID>/repository/compare?from=main&to=feature-new-function"
返回的差异会包含main分支和feature-new-function分支各自相对于共同祖先的所有变更,适合查看两个分支分叉后的全部差异。
2. 直连对比模式(启用straight=true)
请求命令示例:
curl --header "PRIVATE-TOKEN: <你的GitLab访问令牌>" "https://gitlab.example.com/api/v4/projects/<项目ID>/repository/compare?from=main&to=feature-new-function&straight=true"
返回的差异仅包含feature-new-function分支相对于main分支的直接变更,适合快速查看某分支基于主分支新增的内容,不会混入主分支自身的后续变更。
内容的提问来源于stack exchange,提问作者Notealot
相关产品推荐
相关产品推荐

