问题标签 [hglib]

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 回答
726 浏览

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

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

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

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

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

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

0 投票
3 回答
1131 浏览

python - 使用 python-hglib 提交单个文件

我正在尝试使用 python-hglib 实现一个基本的 scm。
到目前为止,我已经设法连接到一个 repo(本地),我想在许多文件中提交一个文件。我不知道该怎么做。考虑以下:

这成功连接到my_mercurial_repo,但是当我到达提交行时,我收到此错误:

'hglib.error.CommandError'>, CommandError('commit', '-m', 'Checkpoint', '-u', 'myself', '--debug')

但是,如果我将其更改为:

rev, node =client.commit('简单提交消息', addremove=True, user='user1')

它工作正常。查看文档,addremove=True在提交之前将新/丢失的文件标记为添加/删除。

所以我想我的问题是:如何使用 python-hglib 在 n 个文件的存储库中提交单个文件?

只是一个快速更新,感谢@kAlmAcetA 的回复,我按照建议更新了我的代码以包含

当我这样做时,错误消失了,第一次提交被执行。如果我在打开的同一个文件上再次执行代码,我仍然会收到错误消息。所以也许我想做的是

  • 打开一个文件(我没问题)
  • 在文件中添加一些文本(我可以接受)
  • 提交文件
  • 在同一个文件中添加更多文本(我可以接受)
  • 提交文件

我现在正在努力为单个文件执行 commit-->edit-->commit 循环。

问候

0 投票
1 回答
140 浏览

python - 使用 hglib 时如何停止 hg 子进程

我在 Mercurial 中有一个 Python 应用程序。在应用程序中,我发现需要显示它当前正在运行的提交。到目前为止,我发现的最佳解决方案是使用hglib. 我有一个看起来像这样的模块:

这用于hglib查找使用的版本并将结果存储在一个变量中,我可以在服务保持运行的整个时间内使用它。

我现在的问题是这会留下一个hg子进程运行,这对我来说没用,因为一旦这个模块完成初始化,我就不需要再使用hglib了。

一旦我对存储库实例的引用超出范围,我本来希望在垃圾收集期间关闭子进程。但显然这不是它的工作方式。

在阅读hglib文档时,我没有找到任何关于如何关闭子进程的文档。

hg完成后关闭子进程的首选方法是什么?

0 投票
1 回答
276 浏览

python - 为什么 hglib 不允许修订和更改的状态?

要获取更改列表,此答案提供了命令行:

但是调用statususinghglib会报错:

为什么我们不能同时指定revand change

在回答最近的另一个问题时,我发布了:

这行得通,但我想知道为什么另一个没有。我错过了什么?

0 投票
2 回答
171 浏览

python - hglib:显示修订版的补丁,可能吗?

我正在尝试使用 hglib 获取给定版本的补丁。我知道 hg 命令是

hg log -pr rev

但我找不到如何使用 hglib 执行此操作或等效操作。似乎没有功能可以做到这一点,除非我自己破解代码来运行上述命令。任何帮助将不胜感激?

0 投票
2 回答
65 浏览

python - 如何知道分支是否使用其变更集关闭?

内部构建系统构建在分支上所做的每个提交。但是,在 Mercurial 中,要关闭一个分支,您必须进行“关闭提交”,触发该提交的构建。

这是一个问题,因为我们在不必要的构建上浪费了资源。

我们使用hglib来完成所有的 mercurial 代码。

我试过这个命令,但这会忽略以前的提交,因为我知道它只是检查它是否作为 repo 中的一个分支存在。

有什么方法可以通过变更集或其他方式知道分支上的提交是否是“关闭提交”。