问题标签 [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 - 在做 qpush 时,我可以得到一个合并工具而不是 .rej 文件吗?
我最近开始使用 mq,这是一种很棒的工作方式。让我有点恼火的一件事是,当我在执行拉取和更新后 qpush 我的补丁时,如果存在冲突,我最终会得到 .rej 文件。
如果 Mercurial 可以只打开 TortoiseMerge 那就太好了,这样我就可以尽快解决冲突,而不必一个一个地打开 .rej 文件并以更手动、更慢的方式进行操作。
甚至文件中的 svn 风格的冲突标记也比 .rej 文件更容易使用。
有没有办法绕过这些 .rej 文件?
mercurial - 没有写访问权限的子存储库上的 Mq
我在我的项目中有一个依赖作为子存储库(没有写访问权限)。我想向该子存储库添加一些个人定制 - 可能使用 mq.
我也希望能够克隆主仓库来构建它。目前我必须:
- 克隆 repo - 子存储库被自动克隆
- 手动克隆子存储库的所有补丁队列
如何摆脱第 2 步?没有外部脚本甚至可能吗?(如果有任何区别,我正在使用 bitbucket)。
mercurial - Mercurial 队列:多个队列共享补丁?
我有一个带有两个补丁队列的本地仓库,patches
并且myproject
. 一种用于发布分支中的错误修复,一种用于单独项目的工作。
- 补丁:本地配置调试 bugfix1 bugfix2
- 我的项目:本地配置 myproject1 myproject2
我想要一个local-config
由两个队列共享的补丁副本。一种可能的解决方案是将 patch-myproject/local-config 符号链接到 ../patches/local-config。
有没有更合适的方法来做到这一点?
mercurial - 如何仅将 Mercurial 队列补丁转换为本地更改?
这个答案显示了如何将提交降级为补丁,但是如何将 mq 补丁仅转换为本地更改?
mercurial - 将 --keep-changes 设置为 `hg qpush` 和 `hg qpop` 的默认值
Mercurial Queues 最近有了一个新功能,它允许在有本地更改时推送和弹出 mq 补丁,前提是补丁不与本地更改冲突。这是由--keep-changes
标志控制的。我想将此行为设为默认行为。通常,我避免设置默认值,因为这意味着hg
我的机器上的工作方式与其他机器上的不同,但在这种情况下,它似乎无害。
hg help qpop
例如说
那么,有人能告诉我要放入什么,.hgrc
以便--keep-changes
默认为qpush
andqpop
吗?
请参阅错误 2780 - 如果本地更改和 mq 补丁与此功能的历史无关,qpop 应该可以工作。可能没有选项可以设置它,在这种情况下它的用处不大。甚至没有一个字母的别名。
mercurial - Mercurial Queues - 备份和共享未提交的补丁
我试图了解如何将我的 mercurial 补丁推送到远程仓库(例如 bitbucket.org),而不必先应用它们(实际上是提交它们)。我的动机是在完成之前首先对我的工作进行远程备份,并且能够与其他人共享这些补丁或在不同的机器上处理它们。
我的正常工作流程是这样的:
此时,我想将我未完成的、未提交的补丁推送到 repo。我已经读过 Mercurial 队列实际上是它们自己的存储库,因此可以像普通的 hg 存储库一样进行操作,但我不清楚我正在尝试做什么的工作流程。我在我的 shell 中将 mq 命令别名为hg -R $(hg root)/.hg/patches
,但我希望能得到一些关于人们如何管理远程备份和共享未提交补丁的反馈。谢谢。
mercurial - 如何使用 Mercurial Queues 重命名文件?
Mercurial Queues是关于补丁的,而补丁对文件重命名一无所知。这是 Mercurial Queues 不支持文件重命名的原因,还是我在重命名文件时做错了什么?我研究了一个补丁队列,只修改了一个名为foo
. 现在我回到补丁 4 并通过以下方式重命名文件hg mv
:
我收到以下错误:
那么我应该如何使用 Mercurial Queues 处理文件重命名呢?Mercurial提交处理文件重命名是有原因的(如果没有,它会丢失有关重命名后文件编辑的整个历史记录)。
更新
刚刚注意到hg histedit
折叠变更集并且hg collapse
也丢失了文件重命名的信息,文件显示为新文件而不是重命名的文件,我想这是出于同样的原因。似乎在不丢失该信息的情况下,在 Mercurial 中无法折叠私有变更集?
更新 2
发现在不丢失重命名信息的情况下折叠私有变更集是可能的hg rebase
,它的--collapse
选项,例如hg rebase -s 5 -d 4 --collapse
. 其他命令应该保留重命名信息的问题仍然悬而未决,但是使用该hg rebase
命令至少有一种方法可以达到预期的结果。
mercurial - Mercurial Queues - 导出补丁
我的本地机器上有一个 mercurial 队列补丁,我需要与我不想提交到上游存储库的同事共享。有没有一种简单的方法可以打包该补丁并与他共享?
mercurial - Mercurial:我怎样才能只在本地保存东西?
我们对允许放入中央 Mercurial 存储库的内容有一些限制。
有什么方法可以将东西保存在本地 Hg 存储库中,而无需将其推送到中央存储库?
笔记:
- 这些文件可能连接到中央存储库(例如分支)中的文件。
- 本地的东西以后可能会被合并到中央存储库中。
mercurial - 如何在使用 mq 合并 mercurial 中的分支时重新设置补丁队列?
在我们的工作流程中,我们使用 Mercurialmq
来开发default
分支。但是,当我们需要将另一个分支合并到 中时default
,将这些补丁应用到合并后的最佳实践是什么default
?
明显(丑陋)的方式:弹出所有补丁,合并分支然后推送所有补丁并修复所有.rej
文件......
正确的方法应该是以rebase
某种方式使用,但不确定什么是正确的工作流程。
有任何想法吗?