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

mercurial - 使用 mercurial 的 mq 管理本地更改

我有一个本地 mercurial 存储库,其中包含一些特定于站点的更改。我想做的是将几个文件设置为不可提交的,这样当我在hg commit没有参数的情况下执行时它们不会自动提交。

现在,我正在用mq和守卫做复杂的事情来实现这一点,推送和弹出并选择守卫以防止我的更改(已检查到 mq 补丁中)被提交。

有没有更简单的方法来做到这一点?mq每次我想提交不包括我的站点特定更改的更改时,我都厌倦了阅读所有命令的帮助。

0 投票
4 回答
11135 浏览

git - git相当于hg mq?

我刚开始使用 Git 和 Mercurial 来熟悉 Git。

我在 Mercurial 中广泛使用 mq 扩展来管理本地补丁,我正在寻找一个 Git 等价物。

我应该只使用 Git 分支吗?或者有没有更好的方法来管理本地补丁,以便轻松应用和删除补丁?

谢谢,

0 投票
3 回答
1868 浏览

mercurial - 如何在存储库中交换 Mercurial 队列

我有一个名为“模拟器”的平台中立的 Mercurial 代码仓库

并希望在构建之前应用针对特定平台优化的补丁。

根据指南,我们可以通过使用带有防护的补丁来实现这一点。

  • Windows Experimental.patch +windows
  • Unix Experimental.patch +unix
  • Mac Experimental.patch +mac

但是它开始变得很麻烦,因为我们的补丁队列包含 100 多个补丁,命名为 windows-memory-optimization.patch +windows、unix-memory-optimization.patch +unix、windows-io-experimental-bug-fix.patch +windows、等等等等。我们在系列文件中将其组织为组,但文件变得越来越大,使用 qseries / qapplied 变得难以管理

相反,我们希望为 windows、unix 和 mac 设置一个队列。

因此,补丁可以组织为:

  • Windows 补丁堆栈:memory-opt.patch、io-opt.patch 等
  • Unix 补丁栈:disk.patch、graphics.patch 等
  • Mac 补丁堆栈:io-fix.patch、io-opt.patch、experimental.patch 等

然后交换每个平台的补丁堆栈进出模拟器存储库。这样我就可以处理 windows 补丁堆栈并弹出/推送各种子系统优化补丁,并独立于 unix 或 mac 补丁堆栈来处理它们。

看起来我做不到,除了针对每个平台制作 3 个不同的 repos 并以这种方式维护补丁堆栈。

除了手动将 .hg/patches 目录复制进出仓库之外,还有其他方法可以完成“交换”补丁堆栈吗?

0 投票
1 回答
2170 浏览

mercurial - Mercurial:还原“提交操作”更改

假设我对文件进行了更改,将其hg status显示为已修改。

现在我想承诺。在我可以这样做之前,我不小心hg remove我的文件。Mercurial 现在会在下一次提交时删除我的文件,hg revert保留它不被删除,但是我的更改会丢失。

导出补丁然后将其导入 MQ 是我将文件放回“修改”状态的唯一选择吗?

0 投票
1 回答
515 浏览

mercurial - Mercurial:将最后 n 个修订版导出到 MQ

有没有一种简单的方法可以将最后 n 个提交导出到新的 mq 队列中并从真实存储库中删除提交?

我确实经常开始开发一个新功能,后来意识到我做错了什么/想要使用 MQ 来折叠补丁。

我目前正在做:

  1. 将最后 n 次提交导出为单个补丁
  2. 剥离最后 n 次提交
  3. 创建新的 MQ
  4. 以相反的顺序导入所有补丁
0 投票
5 回答
4177 浏览

mercurial - 如何使用 mercurial 队列将工作拆分为多个补丁?

如果我已经编写了一段时间的代码,并且忘记创建补丁系列,我该如何回顾性地创建补丁系列?到目前为止,唯一想到的是:

这种非常繁琐的方法也是危险的。我可能会忘记-kon qdelete,此时我会用前额撞砖墙几分钟,或者在 qrecord 操作期间我可能包含太多或太少。

有没有更好的办法?

(我真正想要的是能够hg qpop在我想要拆分的补丁之前,并使用当前不存在的命令,hg qunrecord以交互方式将补丁中的更改吸到我的工作目录中。一旦我很高兴随着这些变化,hg qnew -f可以在旧补丁前面挤一个新补丁。)

0 投票
3 回答
5872 浏览

mercurial - 从 Mercurial MQ 补丁中删除文件

我在 Mercurial 中应用了大型 MQ 补丁。发生的事情是我已经完成了 qrefresh 并在我的补丁中包含了我不想包含的文件。有没有办法在不手动编辑的情况下从我的补丁中删除对这些文件的更改?在这种情况下,如果我只是在没有 MQ 的情况下工作,我所要做的就是 hg revert。

0 投票
2 回答
1701 浏览

configuration - 如何避免意外“hg push”而不是“hg qpush”?

对于那些使用带有 MQ 扩展的 Mercurial 的人:

这是我第二次不小心将更改提交到中央存储库 ( hg push),而不是对我的工作目录 ( hg qpush) 应用补丁。

我认为这是非常不幸的,因为这是一个非常简单的错误并且具有非常严重的后果(至少必须为每个提交的更改做一个hg backout和一个额外的操作hg push,以便生成一个“撤消” las 的新提交中央存储库,但历史变得令人费解且令人不快。

我的目标是在我的环境中配置一些别名或其他东西,以使hg push意外更难做到。

你有什么建议吗?我在想类似的事情:

由于这是一个完全主观的问题,因此这是社区 wiki。

谢谢!

0 投票
1 回答
5726 浏览

mercurial - Mercurial Queues:组合补丁

我一直在玩 Mercurial 和 mercurial 队列,现在有一个相当合理的工作版本。然而,在我提交补丁之前,我想把意大利面条的历史合并成离散的、合乎逻辑的步骤,而不是像现在这样半重叠重复的做-撤消-重做-略有不同的混乱,如果只是以减少补丁的数量。

我怎么做?

0 投票
2 回答
884 浏览

version-control - 在 Mercurial MQ 扩展中更新提交消息

使用hg qnewand之后hg qrefresh创建和更新了一个我想应用到我的repository的补丁,但是我做hg qnew的时候写的commit message不是很好,它没有引用trac的票号,我想说点什么其中关于我的提交解决的一些问题。

我该怎么做类似的事情hg qrewritemycommitmessage。我检查了网站上的文档,但我一无所获。