mercurial:如何将主存储库中的mq补丁作为mq补丁同步到一组克隆存储库

dim*_*dim 4 mercurial mercurial-queue

我必须在mercurial存储库中维护的代码库上运行十几个不同的构建测试.我不想在同一个存储库上连续运行这些测试,因为它们修改了一组公共文件,我想在不同的机器上并行运行它们.此外,在运行所有测试后,我希望能够访问这些测试工作区域的最新测试结果.目前我正在克隆主存储库十几次,并在每个克隆中运行一个不同的测试.在每次测试执行之前,我会执行拉/更新/清除准备序列,以便在最新的清洁状态下开始测试.这对我有好处.

我也正在准备使用mq扩展的新更改,我将在提交之前在所有克隆上进行测试.为了测试一些准备好的候选mq补丁,我想以某种方式部署/同步它们以便在测试克隆中可用,并在运行测试之前使用一些防护应用那些准备好进行测试.

之前有人做过同步吗?最简单的方法是什么?我需要有版本化的mq补丁吗?

Tom*_*lis 7

如果您将"-c"开关传递给qinit,则补丁可以在自己的存储库中维护

hg qinit -c
Run Code Online (Sandbox Code Playgroud)

您可能仍然可以在事实之后创建补丁回购

cd .hg/patches
hg init
hg addremove
hg commit -m "my patches"
Run Code Online (Sandbox Code Playgroud)

但我个人从未尝试过.

然后.hg/patches可以像任何其他mercurial存储库一样对待.所以我认为你可能会推出一些shell脚本.进入克隆回购的.hg目录并做一个

hg clone http://centralrepo.com/patch_repo ./patches
Run Code Online (Sandbox Code Playgroud)