问题标签 [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 投票
1 回答
179 浏览

mercurial - 如何使用 Mercurial Queues 同时处理多个补丁?

可以说,我有 2 个错误要修复:bug1 和 bug2。

我从 bug1 开始,在修复它的过程中,我去 bug2 并修复了一半。

我返回 bug1 并再次部分修复它并再次转到 bug2。

像这样,经过多次切换,我完成了两个错误的修复。

审查这两个错误的人是不同的,他们不想与他们不关心的错误有任何关系。所以,我需要为他们提供不同的补丁。

如果我使用 plain hg diff,我会这样做:

hg diff -U 7 -p file1 -r OLD_REVISION_NUMBER > patch1对于 bug1,和

hg diff -U 7 -p file2 -r OLD_REVISION_NUMBER > patch2对于错误2

如何使用 Mercurial Queues 做同样的事情?请建议一个基本的工作流程。

0 投票
2 回答
731 浏览

mercurial - Mercurial:在没有公共阶段的情况下从远程存储库中提取更改(非发布服务器,“中止:无法重新设置不可变变更集”)

背景

Mercurial 现在有阶段,这是一个很好的机制,可以防止人们改变不应该改变的历史。当一个变更集被推送到远程存储库时,它已经生成public并且不再是rebased. 如果存储库是公开的并且您不希望其他人更改您的变更集,这通常是一件好事。

但是,如果您有自己的临时存储库draft仅与自己共享变更集,则可能会非常烦人。Mercurial 可以选择将其关闭。将此添加到远程存储库.hg/hgrc的文件中。

这将防止推送到远程存储库的变更集从一个draft阶段移动到另一个阶段(本地变更集和刚刚推送到远程存储库的变更集。但是,拉下这个变更集仍然会在阶段public中拉下它。public

问题

draft我希望在该阶段下拉变更集。我只是想将变更集推送到我的个人服务器,然后在家里将其拉下来。在我拉取它之后,我将在rebase我从我们真正的发布服务器拉下的任何提交之上进行临时提交。

任何避免将拉取的变更集自动移动到的public方法都会很棒。这个远程存储库是我自己的完整和完整的草稿服务器。draft在尝试不成功后被迫手动将变更集移回原处,这rebase真的开始让人紧张。

参考

0 投票
2 回答
232 浏览

version-control - 是否有在补丁队列之间移动补丁的命令?

我意识到补丁队列有一个非常简单的实现,你可以手动移动东西,但是有没有命令在两个队列之间移动补丁?

0 投票
3 回答
1211 浏览

mercurial - How to undo "hg qnew"?

I issued hg qnew without realizing that it includes any outstanding changes into the patch. I'd like to back that out and pick only specific changes using hg qrecord. How can I undo qnew?

0 投票
1 回答
901 浏览

mercurial - 如何在 Mercurial Queues 中只推送一个特定补丁?

这就是我所做的:

现在这两个补丁是独立的功能,彼此无关。他们需要彼此独立。

现在我做了(因为我只想要第一个功能)

它说 :

它给了我我所做改变!

难道我做错了什么?

当我告诉它推送特定补丁时,它也会推送其他补丁。

0 投票
1 回答
150 浏览

version-control - MQ/Mercurial 中的多个临时/本地任务分支?

我已阅读 Steve Losh关于使用 MQ 的 qqueues 命令创建多个队列的文章。这有可能让我更接近我对 Nirvana 的个人看法(即 Git 本地分支),因为我可以将与单独功能相关的更改保持相互隔离,我可以将本地更改滚动到单个补丁中以在上游发布,完成后我可以删除队列。惊人的。除了我无法让它工作。我使用 hg qqueue -c feature1 创建第一个队列,使用 qrefresh 对其应用补丁,然后尝试创建一个新队列。当我这样做时,我得到一个错误:

我究竟做错了什么?

谢谢。

PS @Lazy Badger 对我是否需要 pop -a 以更改队列表示怀疑。我首先要说的是,这是我发现的唯一有效的方法。此外,来自 mq.py:

如果有一种更合适的方法可以在我将补丁应用到我正在使用的队列时切换到新队列,我很想听听。使用此解决方案,工作流程将是 1) pop -a; 2)队列特征2;3) 可选地, push -a (如果 feature2 已经有一些补丁)。我不清楚为什么mq 要求不对您要离开的队列应用任何补丁。我想不出一个有用的场景。如果我现有的队列必须为空才能离开它,那么也许提供一个标志来告诉 mq pop -a 我的当前队列(并 push -a 我的目标队列)?

0 投票
3 回答
233 浏览

mercurial - 如果我经常使用 histedit,MercurialMq 会更合适吗?

当我处理某些特定功能时,我经常修复其他几乎不相关但易于修复的东西。我在工作期间做了一些“肮脏”的提交。当该功能完成后,我花了很多时间在 hg histedit 上尝试重新排列我所做的所有更改,以便在我将它们公开之前获得干净的提交。这个过程有点乏味且容易出错,我相信应该有其他的工作方式。

我最近发现了MercurialMq扩展。我是否正确地认为它的设计正是为了促进我描述的过程?

UPD搁置呢?这两者有什么关系?

0 投票
2 回答
660 浏览

version-control - hg abort:无法刷新不可变修订

我正在使用安装了 mq 扩展的 hg(据我所知,我没有 rebase 扩展)

在进行了一些更改并进行了一些 qdiffs、qrefs 之后,我突然遇到了这个错误,我不确定它是如何或为什么发生的,但我希望能够再次 qref 并摆脱这个错误或至少提取我在给定仓库中的所有工作。


输出:

hg qref

-

hg qseries

-

hg status

以及许多其他未跟踪的文件(前面带有 ? 的文件​​)

0 投票
1 回答
508 浏览

mercurial - 如何在工作台(无命令行)中按文件拆分 MQ 中的补丁?

TortoiseHG 中的 Mercurial Workbench 允许以图形方式使用许多 Mercurial 函数。我有一个补丁位于一个反复无常的队列中,我想从中提取一些文件到另一个单独的补丁中。

我在这里找到了命令行方法的解决方案:

Gaol:最终得到 OP=P1 + P2,其中 OP=Original Patch,P1=Patch 1,P2=Patch 2

解决方案:

我根本无法弄清楚如何在工作台内做到这一点,如果有人能教我如何做到这一点,我会很高兴。谢谢!

0 投票
1 回答
21 浏览

mercurial - 是否可以(轻松?)在 Mercurial Queue 补丁中重写路径?

我有一些在文件路径中实现的 MQ 补丁project/feature_a,但我需要将这些更改移动到project/feature_b. 是否有捷径可寻?