在不属于先前分支的分支上获取所有提交

时间:2020-08-28 18:17:56

标签: azure-devops

使用https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commitsbatch?api-version=6.1-preview.1可以获得特定分支的列表(在本例中为发行分支),我希望将其限制为不属于任何先前发行分支的提交。

我尝试过

{
"compareVersion" : {
                "versionType": "branch",
                "version": "release.2"
              },
"itemVersion": {
                "versionType": "branch",
                "version": "release.1"
              }
}

我已经尝试过ComitId。

{
    "fromCommitId" : "some commit sha"
}

似乎都不起作用

我要寻找的是第一个分支是否包含

[
   {
      "commitId": "b1c561d96ff1808700b34b3ef5346e0df4bf5ed8"
   },{
      "commitId": "a1c561d96ff1808700b34b3ef5346e0df4bf5ed9"
   },{
      "commitId": "c1c561d96ff1808700b34b3ef5346e0df4bf5ed0"
   },{
      "commitId": "f1c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   }
]

第二个分支包含:

[
   {
      "commitId": "b1c561d96ff1808700b34b3ef5346e0df4bf5ed8"
   },{
      "commitId": "a1c561d96ff1808700b34b3ef5346e0df4bf5ed9"
   },{
      "commitId": "c1c561d96ff1808700b34b3ef5346e0df4bf5ed0"
   },{
      "commitId": "f1c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   },{
      "commitId": "b2c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   },{
      "commitId": "b3c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   }
]

然后我只希望将以下内容返回给第二个分支,因为其余的也是第一个分支的一部分。

{
      "commitId": "b2c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   },{
      "commitId": "b3c561d96ff1808700b34b3ef5346e0df4bf5ed1"
   }

1 个答案:

答案 0 :(得分:0)

该API在我的测试过程中运行良好,请仔细检查它是否对您有利。

提交Release.1分支:

enter image description here

提交Release.2分支:

enter image description here

我的身体:

{
  "itemVersion": {
    "versionType": "branch",
    "version": "release.1"
  },
  "compareVersion": {
    "versionType": "branch",
    "version": "release.2"
  }
}

结果:

enter image description here

enter image description here

Release.2仅包含两次提交时,我从Release.1分支创建了Release.1分支,然后我在Release.1中进行了一次提交,在Release.2中进行了两次提交。因此Release.2有两个14565a1a不包含的提交(5acd3398Release.1)。很明显,API可以工作以返回这两个提交。

相关问题