忽略 Mercurial hook 中的某些 Mercurial 命令

2024-05-20

我有一个像这样的善变钩子:

[hooks]
pretxncommit.myhook = python:path/to/file:myhook

代码如下所示:

def myhook(ui, repo, **kwargs):
    #do some stuff

但在我的例子中,这个钩子运行在使用提交逻辑做其他事情的命令上hg shelve。有没有办法获取用户输入的命令以避免在该命令上运行挂钩?

也许是这样的:

def myhook(ui, repo, command, **kwargs):
      if command is "hg shelve"
           return 0
      #do some stuff

不幸的是,答案似乎是否定的。我刚刚调试了 hg 3.1 的钩子机制,关于发出哪个命令的信息没有传播到钩子函数中。我能想到的唯一方法是使用调试器 API 来破解一些丑陋的东西,以从调用堆栈中提取信息。

另一个黑客是检查sys.argv,但我担心这也非常不可靠(因为它无法检测是否通过命令服务器 https://mercurial.selenic.com/wiki/CommandServer).

顺便说一句,我使用此代码片段来附加调试器:

def myhook(ui, repo, **kwargs):
    print kwargs
    from pdb import set_trace
    set_trace()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

忽略 Mercurial hook 中的某些 Mercurial 命令 的相关文章

随机推荐

  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 所有编程语言都是按顺序读取的吗?

    我似乎无法找到对此的直接答案 使用多个搜索引擎给我的结果非常模糊 或者只回答了一半的问题 那么 详细来说 当您编写一个程序并对其进行编译 解释时 计算机是按时间顺序顺序读取每一行还是默认情况下跳过 Example 使用 C 风格的源代码 因
  • 将对象转换为哈希,然后将其保存到用户的列

    找不到任何接近我想做的事情 我想将一个对象存储到用户的列中 该列采用数组的形式 postgres def change add column users interest string array true default end 我有另一
  • 在 VS 2012 中创建并运行 MVC 5 项目

    由于某种原因 我的 Visual Studio 2013 预览版无法创建 MVC 5 项目 由于 MVC 项目现已在 CodePlex 中开源 我想知道是否有一种简单的方法可以在我的 Visual Studio 2012 Ultimate
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 迭代打印列表中的每个整数

    假设我有一个整数列表l 1 2 我想打印到stdout Doing print l产生 1 2 假设我想打印不带大括号的列表 map print l产生 No instance for Show IO arising from a use
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant
  • 如何从 JWT 令牌中提取声明

    我正在使用 dgrijalva jwt go 包 我想从令牌中提取有效负载 但找不到方法 示例 取自 https jwt io https jwt io 对于编码 eyJhbGciOiJIUZI1NiIsInR5cCI6IkpXVCJ9 e
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 使用 pyparsing 解析表达式列表

    我正在尝试使用 pyparsing 来解析简单的基本程序 import pyparsing as pp pp ParserElement setDefaultWhitespaceChars t EOL pp LineEnd suppress
  • 如何在 Microsoft Azure Function 中创建类?

    可能这是一个错误的问题 但我需要创建一个模型 类并在天蓝色函数中访问相同的模型 类 我无法找到如何创建课程 类可以内联创建 因为它通常会在常规 C 项目中定义类 这是一个例子 https github com Azure azure web
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 模块参数权限

    我是内核编程的新手 当我正在经历module param 我对权限值 0 感到困惑 有人解释说它不会在 sysfs 中获得条目 而其他人则喜欢S IRUGO将获得一个条目 我无法理解这个概念 perm 值 0 表示什么 我们什么时候需要 s
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 如何将此 HTML 表格布局解决方案转换为浮动 div 解决方案?

    我经常需要列出各种尺寸的项目images在左边和text在右边 像这样 替代文本 http www deviantsart com upload 7s01l5 png http www deviantsart com upload 7s01
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中