У фиксации слияния запроса на извлечение есть неожиданный первый родитель (VSTS) - PullRequest
0 голосов
/ 08 декабря 2018

В нашей системе каждый PR запускает сборку проверки PR на контроллере сборки, где:

  1. Рабочая область контроллера сборки обновляется до origin / master
  2. PR объединяется
  3. Извлечен коммит PR слияния
  4. Сборка запущена

Насколько я понимаю, коммит PR слияния будет иметь следующих двух родителей:

  1. origin / master
  2. Последний коммит в PR

Однако это не всегда так!

Пожалуйста, соблюдайте:

Вывод шага сборки Sources Get

2018-11-27T15:39:21.3096756Z    bf58eb148..b00bf1df0  master               -> origin/master
2018-11-27T15:39:21.3099964Z  * [new ref]             refs/pull/3987/merge -> pull/3987/merge
2018-11-27T15:39:31.3045930Z ##[command]git checkout --progress --force refs/remotes/pull/3987/merge
2018-11-27T15:39:32.8530040Z Previous HEAD position was ce1d1c670... Merge pull request 3982 from wfm/work/pbi476403 into master
2018-11-27T15:39:32.8530496Z HEAD is now at 81317ea59... Merge pull request 3987 from onboarding/476463-Automation_GettingStarted_Performance_Improvements into master

PR 3987 содержит только один коммит:

enter image description here

Исходя из того, что моя логика говорит мне, что:

  1. В этот момент origin / master = b00bf1df0
  2. Локальный коммит PR слияния, т.е. pull / 3987 / merge = 81317ea59
  3. Первым родителем pull / 3987 / merge будет origin / master, т.е. b00bf1df0
  4. Вторым родителем pull / 3987 / merge будет bпоследняя фиксация PR, т.е. b7d9617fc

Теперь я пойду на контроллер сборки и проверю там:

enter image description here

Я вижу, что первый родитель не b00bf1df0, но какой-то другой коммит 959f488bb.

Я не понимаю, как это возможно.Кто-нибудь может объяснить?

...