configuration - 如何避免意外 'hg push' 而不是 'hg qpush' ?

标签 configuration mercurial development-environment mercurial-queue

对于那些使用带有 MQ 扩展的 Mercurial 的人:

这是我第二次不小心将更改提交到中央存储库( hg push ),而不是将补丁应用到我的工作目录( hg qpush )。

我认为这是非常不幸的,因为这是一个非常简单的错误并且会产生非常严重的后果(至少必须为每个提交的更改执行 hg backout 和额外的 hg push 以生成一个新的提交“将 las 撤消”到中央存储库,但历史变得令人费解且令人不快。

我的目标是在我的环境中配置一些别名或其他东西以使 hg push更难偶然发生。

你有什么建议吗?我在想类似的事情:

[alias]
push=      <-- how to NOP the push command??
pushtoserver=push

由于这是一个完全主观的问题,因此这是社区 wiki。

谢谢!

最佳答案

一些模糊的想法:

  • 您可以从您的存储库中删除默认推送位置
  • 你可以写一个“你的意思是qpush吗?是的,不是”预推hook

  • 这个钩子(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'
    
  • 你可以别名 push 到 qpush 和别名 pushtoserver 来推送(我认为这可行,但现在不能尝试)
  • 关于configuration - 如何避免意外 'hg push' 而不是 'hg qpush' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2416017/

    相关文章:

    .net - ClickOnce 应用程序的不同 app.config

    C# WCF 系统.Configuration.ConfigurationErrorsException : Unrecognized element 'ManagedService'

    mercurial - 跨多个 CruiseControl.NET 项目全局增加 Last Build Label

    database - 如何混淆或扰乱 Wordpress 生产数据

    django - 如何在 Django 开发环境中测试 500.html 错误页面?

    c - 扩展 postgresql 代码

    ios - 我什么时候可以安全地删除 Xcode DerivedData 文件夹?

    eclipse - 没有加载 apache-tomcat-8.0.17 的管理器/html

    svn - 在变更集 0(零)之前添加其他变更集?

    git - Mercurial 相当于 "git pull --rebase"