Как избежать случайного "hg push" вместо "hg qpush"?
Для тех из вас, кто использует Mercurial с расширением MQ:
Это второй случай, когда я случайно отправляю изменения в центральный репозиторий (hg push
) вместо применения патча к моему рабочему каталогу (hg qpush
).
Я думаю, что это очень неудачно, потому что это очень простая ошибка, чтобы сделать и имеет очень серьезные последствия (наименьшее нужно сделать hg backout
и дополнительный hg push
для каждого представленного изменения, чтобы создать новый что "отменяет" las один в центральном хранилище, но история становится запутанной и неприятной.
Моя цель - настроить некоторые псевдонимы или что-то в моей среде в orden, чтобы сделать hg push
сложнее сделать случайно.
Есть ли у вас предложения? Я думал что-то вроде:
[alias]
push= <-- how to NOP the push command??
pushtoserver=push
Поскольку это полностью субъективный вопрос, это происходит как вики сообщества.
спасибо!
Ответы
Ответ 1
некоторые неопределенные идеи:
- вы можете удалить местоположение по умолчанию из своего репо
- вы могли бы написать "вы имели в виду qpush? yes, no" pre-push hook
Этот крючок (командная строка bash) запрашивает подтверждение перед нажатием изменений на пульте дистанционного управления (проверено с помощью mercurial 1.4):
[hooks]
preoutgoing.confirm = read -p 'Are you sure you want to push to remote? (y/n): '; echo $REPLY | grep -q 'y'
- вы могли бы псевдоним нажать на qpush и псевдоним pushtoserver, чтобы нажать (я думаю, что это работает, но не может попробовать сейчас)
Ответ 2
Поместите следующее в свой .hgrc:
[alias]
pushtoserver = push
push = 'Did you mean qpush or pushtoserver?'
Работает следующим образом:
$ hg push
alias 'push' resolves to unknown command 'Did you mean qpush or pushtoserver?'
$ hg pushtoserver
abort: repository default-push not found!
См. также раздел псевдонима http-страницы hgrc.