问题标签 [mercurial-queue]
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 - hg 在传出 mq 钩子上中止
我正在尝试运行hg pull -u
,但它给出了以下错误:
我的 .hgrc 包含这个钩子,我猜这是导致问题的原因:
hg incoming
正如我所期望的那样,给了我更改列表,并且本地或远程存储库中都没有 mq 补丁(hg qapplied
并且hg qseries
什么都不返回)。
简单的解决方法是注释掉我的 .hgrc 文件的这一部分。然后我可以拉,但是在合并时我发现我的存储库中有多个头,这是导致错误的原因吗?如果是这样,更准确的错误消息可能会很好。如果没有,有人有更好的解决方法吗?
mercurial - 如何在视觉上(并排)查看由 Mercurial Queues 在 repo 上生成的补丁?
当我在存储库上工作时,我使用 Mercurial Queues 来创建补丁。
所以,假设在我完成补丁后,我hg qrefresh
将补丁导出到我想要的某个文件中。所以,现在我有一个补丁文件。
我如何在视觉上并排查看此补丁,以了解我对存储库中的原始文件所做的更改?
我知道一种直接的方法:在编辑和使用之前kdiff3
或meld
完成后保留所有文件的副本。但这显然非常耗时且不简单。
mercurial - 为什么 .hgignore 出现在我的补丁程序中?
我使用 Mercurial Queues 来处理补丁。
最初没有.hgignore
。我不确定我是否首先创建了一个MQ
补丁,然后创建了我的补丁,.hgignore
或者相反。
(我的意思是“创建补丁” hg qnew patch_name -m "..."
)
无论如何,我在创建补丁后进行了一些更改。.hgignore
MQ
当我这样做时,我的补丁hg qrefresh; hg export qtip
中也得到了更改的内容。.hgignore
因此,尝试向自身添加一个.hgignore
条目.hgignore
。但这没有用。变化持续存在。
所以,我尝试hg forget .hgignore
了,这造成了更大的混乱。现在显示我删除了补丁中的 .hgignore。像这样:
我该如何解决这个问题?我只想.hgignore
成为我本地仓库的一部分,并帮助不跟踪某些文件。
mercurial - 如何在不同的操作系统中维护 2 个相同的存储库?
我在 Linux 上有一个克隆的 Mercurial 远程仓库。
我工作的一些功能也需要在 Windows 上进行测试。
因此,我在 Linux 和 Windows 中克隆了相同的远程仓库。它们是相同的存储库,必须具有我所做的相同更改。源代码在 Windows 和 Linux 上必须始终保持不变。只是为了测试和调试,我需要在 Windows 上进行我的 Linux 更改,反之亦然。
有人可以建议一个好的工作流程吗?
我有使用 Mercurial Queues 的基本经验。
version-control - 使用 mercurial 执行空提交
使用 Mercurial 队列扩展,我可以使用一些提交消息进行空提交,如下所示:
有没有办法在没有 Mercurial 队列的情况下做到这一点?我简单地尝试了:
但是 hg 只是说“没有改变”并且没有进行提交,而且我没有看到任何可以覆盖它的“强制”选项。
如果您想知道我这样做的动机:我们有测试基础设施,您可以在其中推送到一个特殊的存储库,它将触发自动化测试运行。您需要在最尖端提交的提交消息中放入一个特殊字符串,说明要运行哪些测试。显然,当我推送到实际存储库时,我不希望该字符串存在。与其修改提交两次(一次添加特殊字符串,第二次删除它),我会发现只添加一个空提交,然后将其回滚更简洁——我可以用 mq 做到这一点,但我想找到一种不用 mq 的方法。
mercurial - 只要您的工作目录位于不同的分支上,一起使用 Mercurial Queues 和 Share 扩展是否安全?
我已经考虑过了,我想我理解其中的含义,但我想进行健全性检查,因为https://www.mercurial-scm.org/wiki/ShareExtension上的警告非常笼统。
具体来说,警告是“混合 MQ 和共享克隆可能不是一个好主意;如果这样做,您绝对应该避免在一个克隆中推送/弹出补丁,而另一个克隆应用了补丁。”
但是,根据我对 Mq 工作原理的理解,如果您有两个共享的工作目录父级会受到此类更改的影响,那么推送/弹出补丁(创建/销毁历史记录)是不安全的。也就是说,如果您有两个更新为单独的命名分支的共享,则从一个推送/弹出补丁应该只对创建/销毁与工作目录无关的历史记录产生影响,因此不应该有任何不良的一面-效果。
会有一些小的副作用,例如在某些情况下修订序列号更改,但不会危及正确性或导致工作目录出现问题。
这是正确的还是我错过了什么?
version-control - 如何编辑特定的 MQ 补丁?
我的用例:
我注意到我在早期版本中进行了不必要的编辑,我想从补丁中丢弃一个大块,并保留该文件的所有其他更改。我试图在里面编辑补丁.hg/patches/
,然后hg qrefresh
,但在那之后,大块头又出现了。
可能的解决方案:
- 导出该补丁,剪切除不需要的大块之外的所有内容,然后反向应用此补丁。
- 不知何故,用包含大块的补丁使 workdir “脏”,然后用我的 IDE 的 GUI 很好地编辑文件,它轮询 VCS 并突出显示更改,并提供恢复这些更改的选项。
问题:
- 编辑
.hg/patches
是一种有效的做法吗? - 如何通过需要补丁使 workdir 变脏,然后通过编辑重新应用它?喜欢
git reset --soft
? - 有没有其他方便的方法来做主题?
mercurial - how do I push most recent commit in HG
I have done some local commits.
But I want to push the most recent ones like 4977 and 4978 excluding the previous ones.
Can some one tell how do we do that in HG
mercurial - 如何 qfold 当前应用的补丁?
我有两个与 MQ 一起应用的 Mercurial 补丁。我想将它们合二为一,但qfold
需要不应用补丁。为什么?我怎样才能在不显式弹出的情况下折叠它们?
mercurial - 重命名文件上的 MQ 补丁
我有一些 MQ 补丁,其他人已经重命名了我在存储库中处理的文件。现在我不知道如何合并重命名文件的补丁(在拉取更改之后)。我必须手动修复所有重命名文件的补丁吗?