Иногда разработчики в моей команде забывают добавить ревизии других разработчиков, прежде чем коммитить свои собственные (правда, я тоже так делаю). Для недельного проекта в дереве могут быть десятки изменений, которые новая фиксация пропускает. При попытке push hg прерывает работу с новым сообщением удаленной головы, затем они извлекают и объединяют все эти новые коммиты. Я ищу простой способ проверить, есть ли какие-либо новые изменения до того, как кто-то совершит фиксацию, и есть ли они, чтобы предотвратить фиксацию. В идеале должно быть четкое сообщение о том, почему фиксация не удалась.
Кажется, что ловушку должно быть очень легко выполнить, но ловушка перед фиксацией продолжит работу с кодом состояния 0, а hg incoming вернет 1, когда нет изменений. Все, что мне нужно сделать, это инвертировать статус входящей команды hg, но я не могу найти синтаксис для этого. Большинство результатов поиска, которые я нашел, погружаются прямо в написание хуков Python, но это кажется излишним для такой простой проблемы.
Я ищу что-то вроде этого:
[hooks]
pre-commit != hg incoming
or
pre-commit = hg incoming == 0
Я тоже не уверен, куда пойдет это сообщение.
hg commit
с помощью shell-alias - person Lazy Badger   schedule 07.08.2014