Просто сохраните свою собственную копию необходимых коммитов, сохраните вилку битбакета или локальный клон или что-то еще, с тегами для указанных коммитов.
В качестве академического c упражнения, если бы вы использовали Git, а не битбакет для выполнения слияния, проверки были бы как пять строк ловушки,
git rev-list ..MERGE_HEAD` | xargs -rn1 git ls-tree -rd \
| awk '$2=="commit" {print $3}' | sort -u
, чтобы показать вам каждое слияние фиксация подмодуля и
[[ `git for-each-ref --count=1 ---format=ok --contains $commit \
refs/remotes/origin/{master,stable}` = ok ]]
, чтобы проверить, находится ли $commit
в последней основной или стабильной истории происхождения, поэтому минимально жизнеспособный-дымовой тест для того, что вам нужно, будет
for commit in $(git rev-list ..MERGE_HEAD` | xargs -rn1 git ls-tree -rd \
| awk '$2=="commit" {print $3}' | sort -u); do
[[ `git for-each-ref --count=1 ---format=ok --contains $commit \
refs/remotes/origin/{master,stable}` = ok ]] || die "Commit $commit is not published"
done
push.recursesubmodules check
делает в значительной степени именно это, только без специальных c ограничений удаленного доступа и отслеживания
Примечание:
Обычная практика, с которой я знаком, заключалась в том, чтобы различать guish административный статус по месту жительства репо, команда QA имеет тенденцию запускать ~ входящее ~ репо, на которое разработчики или группы проверки pu sh коммитят серию для интеграции, и производственная группа также будет иметь репозиторий для кода, отправленного в производство, и так далее. Таким образом, каждая команда может доверять людям, которых она знает лично, и автоматически проверять входящие данные в предварительном приеме. Во всех репозиториях публикации действительно должны проводиться тесты на работоспособность на входах, и вещи, подобные приведенному выше, были бы хорошими кандидатами.