对于那些使用Mercurial和MQ扩展的人:
这是我第二次意外地将更改提交到中央存储库(hg push
)而不是将补丁应用到我的工作目录(hg qpush
)。
我认为这非常不幸,因为这是一个非常简单的错误,并且会产生非常严重的后果(至少必须为每个提交的更改按顺序执行hg backout
和额外hg push
生成一个新的提交,将“撤消”一个“撤消”到中央存储库,但历史变得令人费解和不愉快。
我的目标是在orden的环境中配置一些别名或某些东西,以使hg push
更难以做到。
你有什么建议吗?我想的是:
[alias]
push= <-- how to NOP the push command??
pushtoserver=push
由于这是一个完全主观的问题,这就像社区维基一样。
谢谢!
答案 0 :(得分:9)
一些模糊的想法:
此钩子(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'
答案 1 :(得分:6)
将以下内容放入.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!