Используйте ловушки , которые предлагает Mercurial, и реализуйте ловушку для команды обновления, которая сравнивает желаемую версию с текущей проверенной версией.Fail the hook, когда требуемая версия старше, чем текущая проверенная.См. документы для доступных крючков и некоторые примеры .
Тем не менее, это может быть нежелательным ограничением использования VCS.Если речь идет о развертывании в производственной системе, это более разумно;тем не менее, вам не нужно копировать весь репозиторий с его историей, а только текущую версию в цель развертывания.
Для моих целей развертывания я проверяю только, установлена ли сборка сборки выпуска(тег, или выбранный вручную в jenkins) или, если это заголовок ветви.В этих случаях я запускаю развертывание в производство после того, как сборка прошла регрессионные тесты: https://github.com/OpenTTD/nml/blob/master/.devzone/build/jenkins_postbuild.sh