问题标签 [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.
python - 应该如何管理“.hg/”状态目录中的挂钩特定文件?
我正在使用Mercurial API的本机 Python 实现编写一系列更改组和提交挂钩。其中一部分需要我保存特定于我的钩子的某些信息,例如我的钩子实际看到的最后一个修订 ID。
我想以一种所有外部元数据都保存在存储库中的方式来执行此操作,但实际上并未跟踪或忽略。我想确保这些数据永远不会成为历史的一部分。
我的第一个想法就是使用现有的.hg/hgrc
配置,因为我只需要存储简单的字符串和整数,这就是我的钩子当前使用的少数配置行。API 提供了一种通过 读取此配置的简单方法ui.config*
,但似乎没有提供实际更改或编写它的方法。
获取配置列表、附加或修改它然后使用配置模块编写它对我来说很容易,但我真的觉得我可能忽略了 API 提供的一些东西。我一直在想“如果在成熟的 API 中没有明显的方法可以做到这一点,我可能会走错路。 ”
是否有“正确”的方法来做到这一点,也许使用 API?或者,也许我在 API 中没有找到可以在不使用的情况下管理此类数据的东西hgrc
?我主要担心的是多人同时推动的比赛。
mercurial - 如何使用“hg log”列出一系列修订?
我正在尝试使用该hg log
命令来显示一系列修订,从x到y。
当我这样做时:
我明白了:
这是 Mercurial 的理解,我希望看到修订版 1和5 而不是 1到5 版。
奇怪的是,这有效:
但是,这会变得非常麻烦,尤其是在尝试在彼此相距 +500 的修订之间获取摘要时。
有没有办法x
通过 y
而不是连接系列中的每个修订来获取修订日志?x
y
我正在使用输出来确定每个开发人员在给定系列中做出了多少承诺。如果我根本无法使用该hg
命令执行此操作,那么我对使用 Mercurial API 持开放态度。我使用了该hg
命令,因为我没有看到通过 API 执行此操作的明显方法。
通过 API,我的意思是通过钩子或扩展使用 Python。
mercurial - Mercurial API:如何获取已拉出但尚未更新的文件的即将到来的内容?
我是 Mercurial API 和 Python 的完全菜鸟,但我现在正在尝试为我自己和我的同事编写一个有用的扩展。
假设我有一个包含一些代码和辅助文件的存储库.hgdata
。代码 和.hgdata
都在 Mercurial 的控制之下。当我执行pull-extended
我的扩展提供的命令时,我希望它进行拉动,然后分析 a 的状态.hgdata
并可能进行一些额外的操作。问题是,当我的命令被调用时,它只是拉取传入的变更集,但如果不进行先前的存储库更新,它就无法查看实际情况。 除了存储库更新之外,.hgdata
还有什么方法可以观看更新后的内容吗? .hgdata
mercurial - Mercurial API:通过 https 读取配置
在 Mercurial API 中,是否有任何方法可以读取与您通过 HTTPS 访问的存储库关联的配置值?存储库的ui
对象似乎没有容纳它们。
tortoisehg - TortoiseHg - 如何从 api 刷新文件列表?
我在仓库中有一些具有特定二进制格式的文件。我想看看它的内容。对于这样的二进制文件,我放入了 repo 特定的 txt 文件,其中包含 md5 和二进制文件中的好内容。
为了尽量减少手动操作,我在 python 中编写了 precommit 钩子,它可以查看二进制文件的变化并检查 txt 格式的文件是否与新的二进制文件匹配。
如果匹配失败,hook 会自动刷新 txt-content 并且不允许提交。
在这里我需要手动按下 F5 来刷新更改列表,因为 TortoiseHG 不包含在已修改的提交文件中,但不存在于列表中......
python - python mercurial api:获取传入的更改
我有一个 mercurial 存储库“proj1”的本地副本。我想通过 python 脚本使用Mercurial API获取传入的更改。我试着让它这样:
此代码失败并显示消息:
mercurial.error.RepoError:未找到存储默认值
但是 commands.summary(...)、commands.branch(...)、commands.branches(...) 工作正常。
你能帮助我吗?谢谢。
PS:对不起我的英语
python - 如何在 Mercurial API 中测试变更集的日期
我想仅在特定范围内的变更集上使用 Mercurial Python API,并且通过阅读文档,我无法弄清楚如何去做。
我的代码如下所示:
我得到的输出是:
示例输出日期为:
- 645630248.0
- 887802818.0
我也见过'hg help dates',但无法从中看出如何将日/月/年日期转换为 Mercurial 的内部表示。
请问如何将截止日期转换为适合比较 changectx.date() 返回的日期值的数字格式?
PS我知道,对于这个微不足道的示例,有更好的方法可以直接使用 hg 命令执行此操作...我的示例代码中没有包含的是我希望在“做事”点添加的复杂步骤!
mercurial - Hglib:如何通过 ssh 连接到远程仓库?
使用“原始”的 mercurial API,我可以编写如下内容:
建立连接后,我可以使用远程仓库。
我无法理解使用 hglib 的远程仓库应该如何工作。天真的方法,即使用一些简单的东西:
不起作用,并且引发的异常并没有让我更清楚。
我的问题:使用 hglib,我如何打开与远程 ssh-repo 的连接?
mercurial - 在不解析命令输出的情况下访问活动书签名称?
我想自动将活动书签名称(如果有)添加到提交消息中。
我发现这种方法可以做类似于预提交钩子的事情。但是它使用分支名称,这是多余的,因为命名分支是元数据的一部分。我想要活动书签。
此示例中使用的内部 API 上下文似乎不包含书签信息(请参阅MercurialApi)。使用hglib我可以得到 的结果hg bookmarks
,然后对其进行解析,找到带有 的行*
,修剪到右列……这很难看。
我知道 hg 缺少 git 的“管道”命令的等价物,但我什至找不到提供我正在寻找的东西的 python API。
书签是否由内部 API 管理(如果是,文档在哪里?)或者如何避免解析解决方案?
python - Mercurial API:未从 repo 的 .hg/hgrc 设置默认推送
我正在使用MercurialApi推送到远程仓库。
这个块给了我一个错误:
但我在 repo 的 .hg/hgrc 中有默认设置。然而我需要手动将它传递给 ui:
这么多的代码应该可以正常工作。知道为什么 ui 对象没有正确设置吗?