问题标签 [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.

0 投票
2 回答
726 浏览

mercurial - hg 在传出 mq 钩子上中止

我正在尝试运行hg pull -u,但它给出了以下错误:

我的 .hgrc 包含这个钩子,我猜这是导致问题的原因:

hg incoming正如我所期望的那样,给了我更改列表,并且本地或远程存储库中都没有 mq 补丁(hg qapplied并且hg qseries什么都不返回)。

简单的解决方法是注释掉我的 .hgrc 文件的这一部分。然后我可以拉,但是在合并时我发现我的存储库中有多个头,这是导致错误的原因吗?如果是这样,更准确的错误消息可能会很好。如果没有,有人有更好的解决方法吗?

0 投票
1 回答
513 浏览

mercurial - 如何在视觉上(并排)查看由 Mercurial Queues 在 repo 上生成的补丁?

当我在存储库上工作时,我使用 Mercurial Queues 来创建补丁。

所以,假设在我完成补丁后,我hg qrefresh将补丁导出到我想要的某个文件中。所以,现在我有一个补丁文件。

我如何在视觉上并排查看此补丁,以了解我对存储库中的原始文件所做的更改?

我知道一种直接的方法:在编辑和使用之前kdiff3meld完成后保留所有文件的副本。但这显然非常耗时且不简单。

0 投票
1 回答
68 浏览

mercurial - 为什么 .hgignore 出现在我的补丁程序中?

我使用 Mercurial Queues 来处理补丁。

最初没有.hgignore。我不确定我是否首先创建了一个MQ补丁,然后创建了我的补丁,.hgignore或者相反。

(我的意思是“创建补丁” hg qnew patch_name -m "..."

无论如何,我在创建补丁后进行了一些更改。.hgignoreMQ

当我这样做时,我的补丁hg qrefresh; hg export qtip中也得到了更改的内容。.hgignore因此,尝试向自身添加一个.hgignore条目.hgignore。但这没有用。变化持续存在。

所以,我尝试hg forget .hgignore了,这造成了更大的混乱。现在显示我删除了补丁中的 .hgignore。像这样:

我该如何解决这个问题?我只想.hgignore成为我本地仓库的一部分,并帮助不跟踪某些文件。

0 投票
1 回答
35 浏览

mercurial - 如何在不同的操作系统中维护 2 个相同的存储库?

我在 Linux 上有一个克隆的 Mercurial 远程仓库。

我工作的一些功能也需要在 Windows 上进行测试。

因此,我在 Linux 和 Windows 中克隆了相同的远程仓库。它们是相同的存储库,必须具有我所做的相同更改。源代码在 Windows 和 Linux 上必须始终保持不变。只是为了测试和调试,我需要在 Windows 上进行我的 Linux 更改,反之亦然。

有人可以建议一个好的工作流程吗?

我有使用 Mercurial Queues 的基本经验。

0 投票
3 回答
7511 浏览

version-control - 使用 mercurial 执行空提交

使用 Mercurial 队列扩展,我可以使用一些提交消息进行空提交,如下所示:

有没有办法在没有 Mercurial 队列的情况下做到这一点?我简单地尝试了:

但是 hg 只是说“没有改变”并且没有进行提交,而且我没有看到任何可以覆盖它的“强制”选项。

如果您想知道我这样做的动机:我们有测试基础设施,您可以在其中推送到一个特殊的存储库,它将触发自动化测试运行。您需要在最尖端提交的提交消息中放入一个特殊字符串,说明要运行哪些测试。显然,当我推送到实际存储库时,我不希望该字符串存在。与其修改提交两次(一次添加特殊字符串,第二次删除它),我会发现只添加一个空提交,然后将其回滚更简洁——我可以用 mq 做到这一点,但我想找到一种不用 mq 的方法。

0 投票
2 回答
55 浏览

mercurial - 只要您的工作目录位于不同的分支上,一起使用 Mercurial Queues 和 Share 扩展是否安全?

我已经考虑过了,我想我理解其中的含义,但我想进行健全性检查,因为https://www.mercurial-scm.org/wiki/ShareExtension上的警告非常笼统。

具体来说,警告是“混合 MQ 和共享克隆可能不是一个好主意;如果这样做,您绝对应该避免在一个克隆中推送/弹出补丁,而另一个克隆应用了补丁。”

但是,根据我对 Mq 工作原理的理解,如果您有两个共享的工作目录父级会受到此类更改的影响,那么推送/弹出补丁(创建/销毁历史记录)是不安全的。也就是说,如果您有两个更新为单独的命名分支的共享,则从一个推送/弹出补丁应该只对创建/销毁与工作目录无关的历史记录产生影响,因此不应该有任何不良的一面-效果。

会有一些小的副作用,例如在某些情况下修订序列号更改,但不会危及正确性或导致工作目录出现问题。

这是正确的还是我错过了什么?

0 投票
1 回答
66 浏览

version-control - 如何编辑特定的 MQ 补丁?

我的用例:
我注意到我在早期版本中进行了不必要的编辑,我想从补丁中丢弃一个大块,并保留该文件的所有其他更改。我试图在里面编辑补丁.hg/patches/,然后hg qrefresh,但在那之后,大块头又出现了。

可能的解决方案:

  • 导出该补丁,剪切除不需要的大块之外的所有内容,然后反向应用此补丁。
  • 不知何故,用包含大块的补丁使 workdir “脏”,然后用我的 IDE 的 GUI 很好地编辑文件,它轮询 VCS 并突出显示更改,并提供恢复这些更改的选项。

问题:

  • 编辑.hg/patches是一种有效的做法吗?
  • 如何通过需要补丁使 workdir 变脏,然后通过编辑重新应用它?喜欢git reset --soft
  • 有没有其他方便的方法来做主题?
0 投票
2 回答
82 浏览

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

0 投票
1 回答
621 浏览

mercurial - 如何 qfold 当前应用的补丁?

我有两个与 MQ 一起应用的 Mercurial 补丁。我想将它们合二为一,但qfold需要不应用补丁。为什么?我怎样才能在不显式弹出的情况下折叠它们?

0 投票
2 回答
83 浏览

mercurial - 重命名文件上的 MQ 补丁

我有一些 MQ 补丁,其他人已经重命名了我在存储库中处理的文件。现在我不知道如何合并重命名文件的补丁(在拉取更改之后)。我必须手动修复所有重命名文件的补丁吗?