问题标签 [mercurial-extension]
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.
mercurial - 如何使用内部:其他带有 mercurial largefiles 扩展名的合并工具
在 mercurial 中重新调整修订版时,可以选择通过始终选择文件的“其他”(源)版本来解决任何合并冲突,方法是:
在这种情况下,rebase 不需要用户输入。
但是,当在使用 largefiles 扩展名的存储库上使用相同的命令时,冲突会以交互方式呈现给用户:
有没有办法总是回答“o”?我试过echo o | hg rebase ...
了,但这违反直觉总是选择“l”。
mercurial - 将大文件转换为普通文件
我有一个存储库,其中主干不包含任何大文件。在我的工作分支中,我之前添加并提交了一些二进制文件作为大文件。现在,我不希望它们成为大文件了。我还没有合并到主干。
我已经尝试完全删除文件,然后提交,然后使用添加文件hg add --normal
,但这导致我的差异包含 .hglf 中的替身以及二进制文件。有什么方法可以在不进行新分支和嫁接更改的情况下摆脱替身?
mercurial - 中止:没有这样的文件或目录:'/mnt/factotum/rpc' [Mercurial]
我在进行克隆、推或拉时遇到问题。当我这样做时,我得到一个错误:
中止:没有这样的文件或目录:'/mnt/factotum/rpc'
我该如何解决这个问题?
- 操作系统:Ubuntu 16
- 工具:Mercurial、BitBucket
mercurial - Python自定义Mercurial合并工具正在进行中?
给定一个自定义 hg 合并工具mymergetool.py
在 Linux 上,我可以这样做:
它在一个新进程中运行 python。
但是在 Windows 上,必须将 python.exe 指定为可执行文件。但鉴于系统上可能不存在(我使用嵌入应用程序的 hg)
我希望能够做这样的事情:
它在与 hg 相同的过程中运行合并工具。
但是,在阅读 hg 时filemerge.py
,似乎python:
在这种情况下不支持 prepend。
有没有其他方法可以提供可以在进程中运行的自定义合并工具?(例如,使用钩子或扩展)
我想这样做的原因
- 我不想在我的应用程序中发布 python.exe。(次要的)
- 在某些系统(例如 iOS)上,很难启动外部进程,因此在进程中运行自定义合并工具会使事情变得容易得多。
easy-install - 如何在 Debian Stretch 上安装 hg-git 插件?
Debian Jessie 和 sid 都有一个mercurial-git
包含该hg-git
插件的软件包。然而,这个包被(自动)从 Debian Stretch 中移除到一个发布关键的 bug中。
但是 - 我需要安装并运行它。当然这应该是可能的,对吧?
好吧,我按照插件页面上的安装说明进行操作:
- 我跑了
apt-get install python-setuptools python-setuptools-git python4-setuptools python3-setuptools-git
- 我跑了
easy_install hg-git
,它似乎工作
但是,当我运行各种 mercurial 操作时,我得到的第一行是错误消息:
(不管我是否在做任何与 git 相关的事情。)
我的问题:
- 为什么会这样?
- 在 hggit 工作时,我需要做什么才能使错误消息消失?
现在,
mercurial - 如何在 Mercurial 中配置通知扩展
我看过很多没有帮助的帖子。我可以看到钩子被调用但在我设置时看不到输出日志中的任何输出Test="True"
我关注了许多提到对hgrc
文件进行更改的帖子,但我想知道更改我的本地hgrc
文件如何影响所有其他用户。我想在存储库中进行更改。
请指导我如何解决问题所在。
python - 简单的 Mercurial 扩展无法导入
我正在尝试遵循编写 Mercurial 扩展的示例代码。这是一个最小的示例,从示例代码中逐字复制:
我将其保存到一个文件中,并在我的.hgrc
文件中安装扩展,如下所示:
任何随后发出的命令,例如hg init
现在会导致以下错误消息:
*** 无法从 C:\foo\myext.py 导入扩展 myext:“模块”对象没有属性“命令”
这可能是由错误的环境引起的,例如缺少环境变量吗?
我在 Windows 10 上使用 Mercurial 4.7,由 TortoiseHg 安装程序 (tortoisehg-4.7.0-x64) 安装。Mercurial 使用 Python 2.7.13,也由 TortoiseHg 安装程序安装。
mercurial - mercurial extensions:高效的模板关键字实现
我正在编写一个 mercurial 扩展,但我发现模板渲染相当慢。
我最初使用的是cmdutil.rendertemplate()
,但是,似乎每次都必须重新解析模板字符串,这相当慢。
当切换到 的“新” api 时@templatekeyword
,看起来传递的第一个 arg 是一个mercurial.templater.engine
对象,它有一个expand
缓存模板的解析版本的方法,这使它更快。不幸的是,它不会扩展 aliases。
有谁知道有效地为 mercurial 扩展呈现模板和别名的正确方法?现在,我看到的唯一选择是复制/粘贴部分cmdutil.rendertemplate
并保留我自己的全局缓存......但这感觉很恶心。
mercurial - 是否可以编写 Mercurial 来扩展标准命令?
我一直在考虑为 Mercurial 编写扩展,并找到了这个文档。
从我所见,您可以在 Mercurial 环境中创建新命令,但我希望实现的是覆盖现有命令,如commit
命令。我的覆盖将包含逻辑,如果它通过它将调用原始的commit
超级函数。
是否可以扩展预先存在的 Mercurial 命令的功能?
谢谢
mercurial - 如何正确使用 hg 共享扩展?
假设我已经将一个 repo 克隆到一个名为 ~/trunk 的目录中,并且我想将一个名为 my-new-branch 的分支共享到目录 ~/my-new-branch 中。我将如何使用 hg 共享扩展来做到这一点?
这就是我一直在做的事情:
光盘~
hg share trunk my-new-branch
但是当我 cd 进入新目录时,我必须去分支?
使困惑。