git - Bitbucket 服务器 API:查找分支的合并库
问题描述
概括
Bitbucket服务器(不是云)API 是否提供了等效git merge-base branch1 branch2
于查找两个分支的共同祖先的功能?
细节
我们想使用 Bitbucket API 来确定某个功能分支何时“太旧”,即在一段时间内(例如一周)没有从 master 或其他一些主要分支(开发、发布等)重新定位或合并到该分支。我看到以下 REST 端点
/rest/api/1.0/projects/EXAMPLE/repos/exampleRepo/commits/?since=release/1.2.3&until=bugfix'
这可以给出上面示例中没有的 所有提交release/1.2.3
。在重新设置分支的情况下,这很好——我只会找到最旧的特定于分支的提交,它的父级是合并基础。
然而,有些人确实合并提交以更新特性分支(例如git merge release/1.2.3
,在特性分支上),我能想到的最好的方法是:
- 解析
Merge branch 'release/1.2.3' of <repo> into bugfix
看起来很脆弱的提交消息,因为有人可能会重写合并提交消息 - 找到两个父母最近的提交,拿第二个提交(似乎是源分支),在源分支上查找它,如果找到,将其用作确定共同祖先年龄的基础。
解决方案
也许找到合并基础的解决方法是检查以下历史release/1.2.3
:
如果历史release/1.2.3
足够有规律,也许你会有更好的时间看
.../commits/?since=bugfix&until=release/1.2.3
并从此列表中获取最后一次提交的父级。
我会建议添加一个--first-parent
选项,但 API 似乎没有提供该标志。
推荐阅读
- android - 从图库中选择图像
- azure - 将文件名从 Foreach 传递到数据流 - Azure 数据工厂
- javascript - 无法发送超过 100kb 的 base64 图像
- javascript - 是否有一个 css 选择器选择元素的属性等于其父属性?
- excel - Excel在包含单词中的文本的两张工作表之间查找和高度重复
- video-streaming - 基本点播视频流服务/应用程序所需的资源
- typescript - 打字稿和解构数组
- python - 正则表达式永远挂起
- ffmpeg - ffmpeg - 尝试转换视频文件但视频可播放时出现错误消息“处理输入时发现无效数据”
- aws-lambda - 如何解密terraform数据资源返回的ssm参数安全字符串值