Когда git обнаруживает обновления для запроса на извлечение?

Окружающая среда:

  1. Atlassian Stash v3.11.2 (https://hub.docker.com/r/atlassian/stash/ )
  2. Git-клиент (1.9.1)
  3. И новичок в git (я)

При отправке изменений в файл test.txt в ветке b1 я вижу приглашение создать запрос на включение, что я и сделал (id 1). Затем на другой ВМ:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
git checkout my_pr_branch_01

Файл test.txt показывает мои изменения, и это нормально.

На более ранней виртуальной машине в файл test.txt были внесены дополнительные изменения (и перенесены в origin b1). Pull request теперь имеет 2 коммита. Вот тут и возникает путаница:

Когда я запускаю это на VM2:

git checkout master
git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
git checkout my_pr_branch_01

Ожидается увидеть изменения и со 2-го коммита. Не нашел их.

Затем побежал:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_02
git checkout my_pr_branch_02

Изменения со 2-го коммита по-прежнему не отображались в test.txt.

Затем нажмите на пользовательский интерфейс тайника и посмотрите на вкладку diff запроса на включение. Изменения со 2-го коммита действительно появились. Затем на ВМ2:

git fetch origin +refs/pull-requests/1/merge:my_pr_branch_03
git checkout my_pr_branch_03

И теперь я видел test.txt с изменениями из 2-го коммита.

Итак, вот вопросы:

  1. Когда он обнаруживает новые коммиты (помимо посещения URL-адреса запроса на извлечение)?
  2. Как сделать так, чтобы git знал о новых коммитах по запросу на вытягивание?
  3. Как заставить его (наверняка) игнорировать новые коммиты по запросу на вытягивание?

Мое конечное намерение — использовать плагин конструктора Stash Pull Request на Jenkins для ряда заданий (запущенных через процесс сборки). Для этого я пытаюсь найти надежный способ заставить все задания использовать один и тот же код.


person Parag Doke    schedule 03.02.2016    source источник
comment
Менеджер продукта Bitbucket здесь. Мне интересно, есть ли особая причина, по которой вы проверяете теоретическую ссылку на слияние запроса на включение? Обычно люди обращаются к исходной ветке, если хотят просмотреть или поработать с кодом локально.   -  person Rog    schedule 10.02.2016


Ответы (1)


Это Сообщение от разработчика Atlassian Stash подтверждает, что refs/pull-requests/*/from и refs/pull-requests/*/merge обновляются "лениво", чтобы обеспечить лучшее масштабирование. Одним из событий, запускающих обновление, является доступ к запросу на включение через веб-интерфейс. Таким образом, поведение, описанное выше, соответствует реализации.

person Amit    schedule 03.02.2016