问题标签 [mercurial-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

python - 应该如何管理“.hg/”状态目录中的挂钩特定文件?

我正在使用Mercurial API的本机 Python 实现编写一系列更改组和提交挂钩。其中一部分需要我保存特定于我的钩子的某些信息,例如我的钩子实际看到的最后一个修订 ID。

我想以一种所有外部元数据都保存在存储库中的方式来执行此操作,但实际上并未跟踪或忽略。我想确保这些数据永远不会成为历史的一部分。

我的第一个想法就是使用现有的.hg/hgrc配置,因为我只需要存储简单的字符串和整数,这就是我的钩子当前使用的少数配置行。API 提供了一种通过 读取此配置的简单方法ui.config*,但似乎没有提供实际更改或编写它的方法。

获取配置列表、附加或修改它然后使用配置模块编写它对我来说很容易,但我真的觉得我可能忽略了 API 提供的一些东西。我一直在想“如果在成熟的 API 中没有明显的方法可以做到这一点,我可能会走错路。

是否有“正确”的方法来做到这一点,也许使用 API?或者,也许我在 API 中没有找到可以在不使用的情况下管理此类数据的东西hgrc?我主要担心的是多人同时推动的比赛。

0 投票
1 回答
16291 浏览

mercurial - 如何使用“hg log”列出一系列修订?

我正在尝试使用该hg log命令来显示一系列修订,从xy

当我这样做时:

我明白了:

这是 Mercurial 的理解,我希望看到修订版 15 而不是 15 版。

奇怪的是,这有效:

但是,这会变得非常麻烦,尤其是在尝试在彼此相距 +500 的修订之间获取摘要时。

有没有办法x 通过 y而不是连接系列中的每个修订来获取修订日志?x y

我正在使用输出来确定每个开发人员在给定系列中做出了多少承诺。如果我根本无法使用该hg命令执行此操作,那么我对使用 Mercurial API 持开放态度。我使用了该hg命令,因为我没有看到通过 API 执行此操作的明显方法。

通过 API,我的意思是通过钩子或扩展使用 Python。

0 投票
1 回答
155 浏览

mercurial - Mercurial API:如何获取已拉出但尚未更新的文件的即将到来的内容?

我是 Mercurial API 和 Python 的完全菜鸟,但我现在正在尝试为我自己和我的同事编写一个有用的扩展。

假设我有一个包含一些代码和辅助文件的存储库.hgdata。代码 和.hgdata都在 Mercurial 的控制之下。当我执行pull-extended我的扩展提供的命令时,我希望它进行拉动,然后分析 a 的状态.hgdata并可能进行一些额外的操作。问题是,当我的命令被调用时,它只是拉取传入的变更集,但如果不进行先前的存储库更新,它就无法查看实际情况。 除了存储库更新之外.hgdata还有什么方法可以观看更新后的内容吗? .hgdata

0 投票
1 回答
208 浏览

mercurial - Mercurial API:通过 https 读取配置

在 Mercurial API 中,是否有任何方法可以读取与您通过 HTTPS 访问的存储库关联的配置值?存储库的ui对象似乎没有容纳它们。

0 投票
1 回答
160 浏览

tortoisehg - TortoiseHg - 如何从 api 刷新文件列表?

我在仓库中有一些具有特定二进制格式的文件。我想看看它的内容。对于这样的二进制文件,我放入了 repo 特定的 txt 文件,其中包含 md5 和二进制文件中的好内容。

为了尽量减少手动操作,我在 python 中编写了 precommit 钩子,它可以查看二进制文件的变化并检查 txt 格式的文件是否与新的二进制文件匹配。

如果匹配失败,hook 会自动刷新 txt-content 并且不允许提交。

在这里我需要手动按下 F5 来刷新更改列表,因为 TortoiseHG 不包含在已修改的提交文件中,但不存在于列表中......

0 投票
1 回答
696 浏览

python - python mercurial api:获取传入的更改

我有一个 mercurial 存储库“proj1”的本地副本。我想通过 python 脚本使用Mercurial API获取传入的更改。我试着让它这样:

此代码失败并显示消息:

mercurial.error.RepoError:未找到存储默认值

但是 commands.summary(...)、commands.branch(...)、commands.branches(...) 工作正常。

你能帮助我吗?谢谢。

PS:对不起我的英语

0 投票
2 回答
399 浏览

python - 如何在 Mercurial API 中测试变更集的日期

我想仅在特定范围内的变更集上使用 Mercurial Python API,并且通过阅读文档,我无法弄清楚如何去做。

我的代码如下所示:

我得到的输出是:

示例输出日期为:

  • 645630248.0
  • 887802818.0

我也见过'hg help dates',但无法从中看出如何将日/月/年日期转换为 Mercurial 的内部表示。

请问如何将截止日期转换为适合比较 changectx.date() 返回的日期值的数字格式?


PS我知道,对于这个微不足道的示例,有更好的方法可以直接使用 hg 命令执行此操作...我的示例代码中没有包含的是我希望在“做事”点添加的复杂步骤!

0 投票
1 回答
726 浏览

mercurial - Hglib:如何通过 ssh 连接到远程仓库?

使用“原始”的 mercurial API,我可以编写如下内容:

建立连接后,我可以使用远程仓库。

我无法理解使用 hglib 的远程仓库应该如何工作。天真的方法,即使用一些简单的东西:

不起作用,并且引发的异常并没有让我更清楚。

我的问题:使用 hglib,我如何打开与远程 ssh-repo 的连接?

0 投票
4 回答
293 浏览

mercurial - 在不解析命令输出的情况下访问活动书签名称?

我想自动将活动书签名称(如果有)添加到提交消息中。

我发现这种方法可以做类似于预提交钩子的事情。但是它使用分支名称,这是多余的,因为命名分支是元数据的一部分。我想要活动书签。

此示例中使用的内部 API 上下文似乎不包含书签信息(请参阅MercurialApi)。使用hglib我可以得到 的结果hg bookmarks,然后对其进行解析,找到带有 的行*,修剪到右列……这很难看。

我知道 hg 缺少 git 的“管道”命令的等价物,但我什至找不到提供我正在寻找的东西的 python API。

书签是否由内部 API 管理(如果是,文档在哪里?)或者如何避免解析解决方案?

0 投票
2 回答
317 浏览

python - Mercurial API:未从 repo 的 .hg/hgrc 设置默认推送

我正在使用MercurialApi推送到远程仓库。

这个块给了我一个错误:

但我在 repo 的 .hg/hgrc 中有默认设置。然而我需要手动将它传递给 ui:

这么多的代码应该可以正常工作。知道为什么 ui 对象没有正确设置吗?